Created
September 4, 2011 16:15
-
-
Save Espenhh/1193089 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Component | |
public class SignatureVerifikasjonsFilter implements ContainerRequestFilter { | |
@Override | |
public ContainerRequest filter(final ContainerRequest request) { | |
// Henter ut id'en brukeren utgir seg for å være | |
String userIdHeader = request.getHeaderValue"X-Vendor-Userid"); | |
// Henter ut Bruker-objektet | |
User user = getUserFromId(userIdHeader); | |
// Henter ut sertifikatet til brukeren | |
Sertifikat sertifikat = user.getSertifikat(); | |
// Sjekk evt. revokering av sertifikatet | |
sertifikat.sjekkRevokering(); | |
// Generer kanonisk streng som skulle vært signert | |
String stringToSign = genererKanoniskStreng(request); | |
// Hent ut signatur fra header | |
String signatur = request.getHeaderValue"X-Vendor-Signature"); | |
// Sjekker at signaturen er gyldig | |
boolean verifisert = sertifikat.verifiserSignatur(stringToSign, Base64.decodeBase64(signatur.getBytes())); | |
if (!verifisert) { | |
// Kast Exception - signaturverifikasjon feilet! | |
} | |
// Dersom vi kommer hit, så er signaturen verifisert | |
// Vi trenger derfor ikke tenke noe mer på dette i koden ellers! | |
return request; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment