diff --git a/demoiselle-security-jwt/pom.xml b/demoiselle-security-jwt/pom.xml
index 2bca3fd..0d8bdea 100644
--- a/demoiselle-security-jwt/pom.xml
+++ b/demoiselle-security-jwt/pom.xml
@@ -26,14 +26,7 @@
org.bitbucket.b_c
jose4j
- 0.4.1
-
-
-
- com.google.code.gson
- gson
- 2.2.2
- compile
+ 0.5.2
diff --git a/demoiselle-security-jwt/src/main/java/org/demoiselle/jee/security/jwt/impl/TokensManagerImpl.java b/demoiselle-security-jwt/src/main/java/org/demoiselle/jee/security/jwt/impl/TokensManagerImpl.java
index 76bac97..6a3b03c 100644
--- a/demoiselle-security-jwt/src/main/java/org/demoiselle/jee/security/jwt/impl/TokensManagerImpl.java
+++ b/demoiselle-security-jwt/src/main/java/org/demoiselle/jee/security/jwt/impl/TokensManagerImpl.java
@@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
import org.demoiselle.jee.core.interfaces.security.DemoisellePrincipal;
import org.demoiselle.jee.core.interfaces.security.Token;
import org.demoiselle.jee.core.interfaces.security.TokensManager;
+import org.jose4j.jwk.JsonWebKey;
import org.jose4j.jwk.RsaJsonWebKey;
import org.jose4j.jwk.RsaJwkGenerator;
import org.jose4j.jws.AlgorithmIdentifiers;
@@ -47,7 +48,8 @@ public class TokensManagerImpl implements TokensManager {
public TokensManagerImpl() throws JoseException {
if (rsaJsonWebKey == null) {
- rsaJsonWebKey = (RsaJsonWebKey) RsaJsonWebKey.Factory.newPublicJwk(RsaJwkGenerator.generateJwk(2048).getKey());
+ String chave = RsaJwkGenerator.generateJwk(2048).toJson(JsonWebKey.OutputControlLevel.INCLUDE_PRIVATE);
+ rsaJsonWebKey = (RsaJsonWebKey) RsaJsonWebKey.Factory.newPublicJwk(chave);
rsaJsonWebKey.setKeyId("demoiselle-security-jwt");
}
}
@@ -61,7 +63,8 @@ public class TokensManagerImpl implements TokensManager {
.setAllowedClockSkewInSeconds(60) // allow some leeway in validating time based claims to account for clock skew
.setExpectedIssuer("demoiselle") // whom the JWT needs to have been issued by
.setExpectedAudience("demoiselle") // to whom the JWT is intended for
- .setVerificationKey(rsaJsonWebKey.getKey()) // verify the signature with the public key
+ .setDecryptionKey(rsaJsonWebKey.getPrivateKey()) // decrypt with the receiver's private key
+ .setVerificationKey(rsaJsonWebKey.getPublicKey())
.build(); // create the JwtConsumer instance
JwtClaims jwtClaims = jwtConsumer.processToClaims(token.getKey());
loggedUser.setId((String) jwtClaims.getClaimValue("id"));
@@ -102,14 +105,14 @@ public class TokensManagerImpl implements TokensManager {
JsonWebSignature jws = new JsonWebSignature();
jws.setPayload(claims.toJson());
- jws.setKey(rsaJsonWebKey.getKey());
+ jws.setKey(rsaJsonWebKey.getRsaPrivateKey());
jws.setKeyIdHeaderValue(rsaJsonWebKey.getKeyId());
- jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA512);
+ jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256);
token.setKey(jws.getCompactSerialization());
token.setType("JWT");
} catch (JoseException ex) {
- ex.printStackTrace();
- // logger.severe(ex.getMessage());
+ //ex.printStackTrace();
+ logger.severe(ex.getMessage());
}
}
diff --git a/demoiselle-security-token/src/main/java/org/demoiselle/jee/security/token/impl/TokensManagerImpl.java b/demoiselle-security-token/src/main/java/org/demoiselle/jee/security/token/impl/TokensManagerImpl.java
index e73a384..306c96d 100644
--- a/demoiselle-security-token/src/main/java/org/demoiselle/jee/security/token/impl/TokensManagerImpl.java
+++ b/demoiselle-security-token/src/main/java/org/demoiselle/jee/security/token/impl/TokensManagerImpl.java
@@ -8,7 +8,7 @@ package org.demoiselle.jee.security.token.impl;
import static java.util.UUID.randomUUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
-import javax.enterprise.context.Dependent;
+import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.demoiselle.jee.core.interfaces.security.DemoisellePrincipal;
import org.demoiselle.jee.core.interfaces.security.Token;
@@ -18,10 +18,10 @@ import org.demoiselle.jee.core.interfaces.security.TokensManager;
*
* @author 70744416353
*/
-@Dependent
+@ApplicationScoped
public class TokensManagerImpl implements TokensManager {
- private static ConcurrentHashMap repo = new ConcurrentHashMap<>();
+ private ConcurrentHashMap repo = new ConcurrentHashMap<>();
@Inject
private Logger logger;
@@ -56,7 +56,7 @@ public class TokensManagerImpl implements TokensManager {
@Override
public boolean validate() {
- return getUser() != null && getUser().getId() != null;
+ return getUser() != null;
}
}
diff --git a/demoiselle-security/src/main/java/org/demoiselle/jee/security/impl/SecurityContextImpl.java b/demoiselle-security/src/main/java/org/demoiselle/jee/security/impl/SecurityContextImpl.java
index 3f054cd..053d92e 100644
--- a/demoiselle-security/src/main/java/org/demoiselle/jee/security/impl/SecurityContextImpl.java
+++ b/demoiselle-security/src/main/java/org/demoiselle/jee/security/impl/SecurityContextImpl.java
@@ -6,6 +6,7 @@
*/
package org.demoiselle.jee.security.impl;
+import javax.enterprise.context.Dependent;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import org.demoiselle.jee.core.interfaces.security.DemoisellePrincipal;
diff --git a/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredPermissionInterceptor.java b/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredPermissionInterceptor.java
index 70cd5b2..0fbfc11 100644
--- a/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredPermissionInterceptor.java
+++ b/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredPermissionInterceptor.java
@@ -76,7 +76,6 @@ public class RequiredPermissionInterceptor implements Serializable {
}
if (!securityContext.hasPermission(resource, operation)) {
- logger.severe(bundle.doesNotHavePermission(operation, resource));
throw new DemoiselleSecurityException(bundle.doesNotHavePermission(operation, resource), UNAUTHORIZED.getStatusCode());
}
diff --git a/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredRoleInterceptor.java b/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredRoleInterceptor.java
index 6a95773..e0ba6ba 100644
--- a/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredRoleInterceptor.java
+++ b/demoiselle-security/src/main/java/org/demoiselle/jee/security/interceptor/RequiredRoleInterceptor.java
@@ -83,7 +83,6 @@ public class RequiredRoleInterceptor implements Serializable {
}
if (userRoles.isEmpty()) {
- logger.severe(bundle.doesNotHaveRole(roles.toString()));
throw new DemoiselleSecurityException(bundle.doesNotHaveRole(roles.toString()), UNAUTHORIZED.getStatusCode());
}
--
libgit2 0.21.2