/** * Configures AuthTokenService if missing */ @Bean @ConditionalOnMissingBean(BlueTokenService.class) public BlueTokenService blueTokenService(LemonProperties properties) throws JOSEException { log.info("Configuring AuthTokenService"); return new LemonJwsService(properties.getJwt().getSecret()); }
@Override public String createToken(String aud, String subject, Long expirationMillis, Map<String, Object> claimMap) { Payload payload = createPayload(aud, subject, expirationMillis, claimMap); // Prepare JWS object JWSObject jwsObject = new JWSObject(new JWSHeader(JWSAlgorithm.HS256), payload); try { // Apply the HMAC jwsObject.sign(signer); } catch (JOSEException e) { throw new RuntimeException(e); } // To serialize to compact form, produces something like // eyJhbGciOiJIUzI1NiJ9.SGVsbG8sIHdvcmxkIQ.onO9Ihudz3WkiauDO2Uhyuz0Y18UASXlSc1eS0NkWyA return jwsObject.serialize(); }