Skip to content

Instantly share code, notes, and snippets.

@Espenhh
Created September 4, 2011 16:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Espenhh/1193089 to your computer and use it in GitHub Desktop.
Save Espenhh/1193089 to your computer and use it in GitHub Desktop.
@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