SpotBugs Bug Detector Report
The following document contains the results of SpotBugs
SpotBugs Version is 4.9.4
Threshold is medium
Effort is max
Summary
| Classes |
Bugs |
Errors |
Missing Classes |
| 120 |
40 |
0 |
0 |
org.forgerock.json.jose.builders.AbstractJwtBuilder
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.builders.AbstractJwtBuilder.claims(JwtClaimsSet) may expose internal representation by storing an externally mutable object into AbstractJwtBuilder.claimsSet |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
63 |
Medium |
org.forgerock.json.jose.builders.EncryptedThenSignedJwtBuilder
| Bug |
Category |
Details |
Line |
Priority |
| new org.forgerock.json.jose.builders.EncryptedThenSignedJwtBuilder(EncryptedJwtBuilder, SigningHandler, JwsAlgorithm) may expose internal representation by storing an externally mutable object into EncryptedThenSignedJwtBuilder.encryptedJwtBuilder |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
50 |
Medium |
org.forgerock.json.jose.jwe.EncryptedJwt
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jwe.EncryptedJwt.getHeader() may expose internal representation by returning EncryptedJwt.header |
MALICIOUS_CODE |
EI_EXPOSE_REP |
110 |
Medium |
| new org.forgerock.json.jose.jwe.EncryptedJwt(JweHeader, String, byte[], byte[], byte[], byte[]) may expose internal representation by storing an externally mutable object into EncryptedJwt.authenticationTag |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
103 |
Medium |
| new org.forgerock.json.jose.jwe.EncryptedJwt(JweHeader, String, byte[], byte[], byte[], byte[]) may expose internal representation by storing an externally mutable object into EncryptedJwt.ciphertext |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
102 |
Medium |
| new org.forgerock.json.jose.jwe.EncryptedJwt(JweHeader, String, byte[], byte[], byte[], byte[]) may expose internal representation by storing an externally mutable object into EncryptedJwt.encryptedContentEncryptionKey |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
100 |
Medium |
| new org.forgerock.json.jose.jwe.EncryptedJwt(JweHeader, String, byte[], byte[], byte[], byte[]) may expose internal representation by storing an externally mutable object into EncryptedJwt.header |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
98 |
Medium |
| new org.forgerock.json.jose.jwe.EncryptedJwt(JweHeader, String, byte[], byte[], byte[], byte[]) may expose internal representation by storing an externally mutable object into EncryptedJwt.initialisationVector |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
101 |
Medium |
org.forgerock.json.jose.jwe.JweEncryption
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jwe.JweEncryption.getAuthenticationTag() may expose internal representation by returning JweEncryption.authenticationTag |
MALICIOUS_CODE |
EI_EXPOSE_REP |
57 |
Medium |
| org.forgerock.json.jose.jwe.JweEncryption.getCiphertext() may expose internal representation by returning JweEncryption.ciphertext |
MALICIOUS_CODE |
EI_EXPOSE_REP |
48 |
Medium |
| new org.forgerock.json.jose.jwe.JweEncryption(byte[], byte[]) may expose internal representation by storing an externally mutable object into JweEncryption.authenticationTag |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
39 |
Medium |
| new org.forgerock.json.jose.jwe.JweEncryption(byte[], byte[]) may expose internal representation by storing an externally mutable object into JweEncryption.ciphertext |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
38 |
Medium |
org.forgerock.json.jose.jwe.handlers.encryption.AbstractRSAESPkcs1V15AesCbcHmacEncryptionHandler
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class org.forgerock.json.jose.jwe.handlers.encryption.AbstractRSAESPkcs1V15AesCbcHmacEncryptionHandler at new org.forgerock.json.jose.jwe.handlers.encryption.AbstractRSAESPkcs1V15AesCbcHmacEncryptionHandler(SigningManager, EncryptionMethod) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
52 |
Medium |
org.forgerock.json.jose.jwk.EcJWK
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class org.forgerock.json.jose.jwk.EcJWK at new org.forgerock.json.jose.jwk.EcJWK(ECPublicKey, ECPrivateKey, KeyUse, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
81 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.EcJWK at new org.forgerock.json.jose.jwk.EcJWK(ECPublicKey, KeyUse, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
67 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.EcJWK at new org.forgerock.json.jose.jwk.EcJWK(KeyUse, String, String, String, String, String, String, String, String, List) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
125 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.EcJWK at new org.forgerock.json.jose.jwk.EcJWK(KeyUse, String, String, String, String, String, String, String, List) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
105 |
Medium |
org.forgerock.json.jose.jwk.JWK
| Bug |
Category |
Details |
Line |
Priority |
| Possible null pointer dereference of kty in new org.forgerock.json.jose.jwk.JWK(KeyType, KeyUse, String, String, String, String, List) |
CORRECTNESS |
NP_NULL_ON_SOME_PATH |
94 |
High |
| new org.forgerock.json.JsonException(String) not thrown in new org.forgerock.json.jose.jwk.JWK(KeyType, KeyUse, String, String, String, String, List) |
CORRECTNESS |
RV_EXCEPTION_NOT_THROWN |
92 |
High |
org.forgerock.json.jose.jwk.JWKLookup
| Bug |
Category |
Details |
Line |
Priority |
| Found reliance on default encoding in org.forgerock.json.jose.jwk.JWKLookup.lookup(String, KeyType): String.getBytes() |
I18N |
DM_DEFAULT_ENCODING |
52 |
High |
org.forgerock.json.jose.jwk.JWKSet
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class org.forgerock.json.jose.jwk.JWKSet at new org.forgerock.json.jose.jwk.JWKSet(List) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
78 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.JWKSet at new org.forgerock.json.jose.jwk.JWKSet(JsonValue) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
67 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.JWKSet at new org.forgerock.json.jose.jwk.JWKSet(JWK) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
56 |
Medium |
org.forgerock.json.jose.jwk.OctJWK
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class org.forgerock.json.jose.jwk.OctJWK at new org.forgerock.json.jose.jwk.OctJWK(KeyUse, String, String, String, String, String, List) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
46 |
Medium |
org.forgerock.json.jose.jwk.store.JwksStore
| Bug |
Category |
Details |
Line |
Priority |
| This write of the 64-bit primitive variable "cacheMissCacheTimeInMs" may not atomic |
MT_CORRECTNESS |
AT_NONATOMIC_64BIT_PRIMITIVE |
185 |
Medium |
| This write of the 64-bit primitive variable "cacheTimeoutInMs" may not atomic |
MT_CORRECTNESS |
AT_NONATOMIC_64BIT_PRIMITIVE |
177 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.store.JwksStore at new org.forgerock.json.jose.jwk.store.JwksStore(String, Duration, Duration, URL, JWKSetParser) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
88 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jwk.store.JwksStore at new org.forgerock.json.jose.jwk.store.JwksStore(String, Duration, Duration, URL, SimpleHTTPClient) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
62 |
Medium |
| Invocation of java.net.URL.equals(Object), which blocks to do domain name resolution, in org.forgerock.json.jose.jwk.store.JwksStore.setJwkUrl(URL) |
PERFORMANCE |
DMI_BLOCKING_METHODS_ON_URL |
197 |
High |
org.forgerock.json.jose.jws.JwtSecureHeader
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jws.JwtSecureHeader.setJwkSetUrl(URL) invokes inefficient new String(String) constructor |
PERFORMANCE |
DM_STRING_CTOR |
79 |
Medium |
| org.forgerock.json.jose.jws.JwtSecureHeader.setX509Url(URL) invokes inefficient new String(String) constructor |
PERFORMANCE |
DM_STRING_CTOR |
135 |
Medium |
org.forgerock.json.jose.jws.SignedJwt
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jws.SignedJwt.getHeader() may expose internal representation by returning SignedJwt.header |
MALICIOUS_CODE |
EI_EXPOSE_REP |
132 |
Medium |
| new org.forgerock.json.jose.jws.SignedJwt(JwsHeader, JwtClaimsSet, SigningHandler) may expose internal representation by storing an externally mutable object into SignedJwt.header |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
57 |
Medium |
| new org.forgerock.json.jose.jws.SignedJwt(JwsHeader, JwtClaimsSet, byte[], byte[]) may expose internal representation by storing an externally mutable object into SignedJwt.header |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
79 |
Medium |
| new org.forgerock.json.jose.jws.SignedJwt(JwsHeader, JwtClaimsSet, byte[], byte[]) may expose internal representation by storing an externally mutable object into SignedJwt.signature |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
82 |
Medium |
| new org.forgerock.json.jose.jws.SignedJwt(JwsHeader, JwtClaimsSet, byte[], byte[]) may expose internal representation by storing an externally mutable object into SignedJwt.signingInput |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
81 |
Medium |
org.forgerock.json.jose.jws.handlers.ECDSASigningHandler
| Bug |
Category |
Details |
Line |
Priority |
| Exception thrown in class org.forgerock.json.jose.jws.handlers.ECDSASigningHandler at new org.forgerock.json.jose.jws.handlers.ECDSASigningHandler(ECPrivateKey) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
54 |
Medium |
| Exception thrown in class org.forgerock.json.jose.jws.handlers.ECDSASigningHandler at new org.forgerock.json.jose.jws.handlers.ECDSASigningHandler(ECPublicKey) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
65 |
Medium |
org.forgerock.json.jose.jwt.JwtClaimsSet
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jwt.JwtClaimsSet.setClaims(Map) makes inefficient use of keySet iterator instead of entrySet iterator |
PERFORMANCE |
WMI_WRONG_MAP_ITERATOR |
417 |
Medium |
org.forgerock.json.jose.jwt.JwtHeader
| Bug |
Category |
Details |
Line |
Priority |
| org.forgerock.json.jose.jwt.JwtHeader.setParameters(Map) makes inefficient use of keySet iterator instead of entrySet iterator |
PERFORMANCE |
WMI_WRONG_MAP_ITERATOR |
148 |
Medium |