public String encodePublicKey(final PublicKey publicKey) throws IOException {
ByteArrayOutputStream byteOs = new ByteArrayOutputStream();
- if (publicKey instanceof RSAPublicKey && publicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_RSA)) {
- RSAPublicKey rsaPublicKey = (RSAPublicKey) publicKey;
+ if (publicKey instanceof RSAPublicKey rsaPublicKey
+ && rsaPublicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_RSA)) {
DataOutputStream dataOutputStream = new DataOutputStream(byteOs);
dataOutputStream.writeInt(KEY_TYPE_RSA.getBytes(StandardCharsets.UTF_8).length);
dataOutputStream.write(KEY_TYPE_RSA.getBytes(StandardCharsets.UTF_8));
dataOutputStream.write(rsaPublicKey.getPublicExponent().toByteArray());
dataOutputStream.writeInt(rsaPublicKey.getModulus().toByteArray().length);
dataOutputStream.write(rsaPublicKey.getModulus().toByteArray());
- } else if (publicKey instanceof DSAPublicKey && publicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_DSA)) {
- DSAPublicKey dsaPublicKey = (DSAPublicKey) publicKey;
+ } else if (publicKey instanceof DSAPublicKey dsaPublicKey
+ && dsaPublicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_DSA)) {
DSAParams dsaParams = dsaPublicKey.getParams();
DataOutputStream dataOutputStream = new DataOutputStream(byteOs);
dataOutputStream.writeInt(KEY_TYPE_DSA.getBytes(StandardCharsets.UTF_8).length);
dataOutputStream.write(dsaParams.getG().toByteArray());
dataOutputStream.writeInt(dsaPublicKey.getY().toByteArray().length);
dataOutputStream.write(dsaPublicKey.getY().toByteArray());
- } else if (publicKey instanceof BCECPublicKey && publicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_ECDSA)) {
- BCECPublicKey ecPublicKey = (BCECPublicKey) publicKey;
+ } else if (publicKey instanceof BCECPublicKey ecPublicKey
+ && ecPublicKey.getAlgorithm().equals(KEY_FACTORY_TYPE_ECDSA)) {
DataOutputStream dataOutputStream = new DataOutputStream(byteOs);
dataOutputStream.writeInt(KEY_TYPE_ECDSA.getBytes(StandardCharsets.UTF_8).length);
dataOutputStream.write(KEY_TYPE_ECDSA.getBytes(StandardCharsets.UTF_8));
Object privateKey = keyReader.readObject();
KeyPair keyPair;
- if (privateKey instanceof PEMEncryptedKeyPair) {
- PEMKeyPair decryptedKeyPair = ((PEMEncryptedKeyPair) privateKey).decryptKeyPair(decryptionProv);
- keyPair = converter.getKeyPair(decryptedKeyPair);
+ if (privateKey instanceof PEMEncryptedKeyPair pemPrivateKey) {
+ keyPair = converter.getKeyPair(pemPrivateKey.decryptKeyPair(decryptionProv));
} else {
keyPair = converter.getKeyPair((PEMKeyPair) privateKey);
}
* @return the username, <code>DEFAULT_USERNAME</code> or <code>DEFAULT_TOKEN</code> depending on input
*/
public static String extractUsername(final AuthenticationToken token) {
- if (isUsernamePasswordToken(token)) {
- final UsernamePasswordToken upt = (UsernamePasswordToken) token;
+ if (token instanceof UsernamePasswordToken upt) {
return extractField(upt.getUsername(), DEFAULT_USERNAME);
}
return DEFAULT_TOKEN;
* @return the hostname, or <code>DEFAULT_USERNAME</code> depending on input
*/
public static String extractHostname(final AuthenticationToken token) {
- if (isUsernamePasswordToken(token)) {
- final UsernamePasswordToken upt = (UsernamePasswordToken) token;
+ if (token instanceof UsernamePasswordToken upt) {
return extractField(upt.getHost(), DEFAULT_HOSTNAME);
}
return DEFAULT_HOSTNAME;
@Override
protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principalCollection) {
final var primaryPrincipal = getAvailablePrincipal(principalCollection);
- if (primaryPrincipal instanceof ODLPrincipal) {
- return new SimpleAuthorizationInfo(((ODLPrincipal) primaryPrincipal).getRoles());
+ if (primaryPrincipal instanceof ODLPrincipal odlPrincipal) {
+ return new SimpleAuthorizationInfo(odlPrincipal.getRoles());
}
LOG.error("Unsupported principal {}", primaryPrincipal);
protected AuthenticationInfo doGetAuthenticationInfo(
final AuthenticationToken authenticationToken,
final SimpleHttpClient client) {
-
- final URI theServerUri = getServerUri();
- final String theDefaultDomain = getDefaultDomain();
-
- if (!(authenticationToken instanceof UsernamePasswordToken)) {
+ if (!(authenticationToken instanceof UsernamePasswordToken usernamePasswordToken)) {
LOG.error("Only basic authentication is supported");
throw new AuthenticationException(FATAL_ERROR_BASIC_AUTH_ONLY);
}
+ final URI theServerUri = getServerUri();
if (theServerUri == null) {
LOG.error("Invalid URL to Keystone server");
throw new AuthenticationException(FATAL_ERROR_INVALID_URL);
}
- final UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) authenticationToken;
final String qualifiedUser = usernamePasswordToken.getUsername();
final String password = new String(usernamePasswordToken.getPassword());
final String[] qualifiedUserArray = qualifiedUser.split(USERNAME_DOMAIN_SEPARATOR, 2);
final String username = qualifiedUserArray.length > 0 ? qualifiedUserArray[0] : qualifiedUser;
- final String domain = qualifiedUserArray.length > 1 ? qualifiedUserArray[1] : theDefaultDomain;
+ final String domain = qualifiedUserArray.length > 1 ? qualifiedUserArray[1] : getDefaultDomain();
final KeystoneAuth keystoneAuth = new KeystoneAuth(username, password, domain);
final SimpleHttpRequest<KeystoneToken> httpRequest = client.requestBuilder(KeystoneToken.class)
*/
package org.opendaylight.aaa.shiro.realm;
-import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
@Override
public boolean isAccessAllowed(final ServletRequest request, final ServletResponse response,
final Object mappedValue) {
- checkArgument(request instanceof HttpServletRequest, "Expected HttpServletRequest, received {}", request);
+ if (!(request instanceof HttpServletRequest httpServletRequest)) {
+ throw new IllegalArgumentException("Expected HttpServletRequest, received " + request);
+ }
final Subject subject = getSubject(request, response);
- final HttpServletRequest httpServletRequest = (HttpServletRequest)request;
final String requestURI = httpServletRequest.getRequestURI();
LOG.debug("isAccessAllowed for user={} to requestURI={}", subject, requestURI);
protected AuthenticationInfo doGetAuthenticationInfo(final AuthenticationToken authenticationToken)
throws AuthenticationException {
final var principal = authenticationToken.getPrincipal();
- if (!(principal instanceof String)) {
+ if (!(principal instanceof String stringPrincipal)) {
throw new AuthenticationException("Non-string principal " + principal);
}
- if (!(authenticationToken instanceof UsernamePasswordToken)) {
+ if (!(authenticationToken instanceof UsernamePasswordToken userPassToken)) {
throw new AuthenticationException("Token is not UsernamePasswordToken: " + authenticationToken);
}
- final var password = new String(((UsernamePasswordToken) authenticationToken).getPassword());
+ final var password = new String(userPassToken.getPassword());
// FIXME: make the domain name configurable
- final var moonPrincipal = moonAuthenticate((String) principal, password, MOON_DEFAULT_DOMAIN);
+ final var moonPrincipal = moonAuthenticate(stringPrincipal, password, MOON_DEFAULT_DOMAIN);
return moonPrincipal == null ? null
: new SimpleAuthenticationInfo(moonPrincipal, password.toCharArray(), getName());
}
@Override
protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principalCollection) {
final var primaryPrincipal = principalCollection.getPrimaryPrincipal();
- if (primaryPrincipal instanceof ODLPrincipal) {
- return new SimpleAuthorizationInfo(((ODLPrincipal) primaryPrincipal).getRoles());
+ if (primaryPrincipal instanceof ODLPrincipal odlPrincipal) {
+ return new SimpleAuthorizationInfo(odlPrincipal.getRoles());
}
LOG.error("Could not decode authorization request: {} is not a known principal type", primaryPrincipal);
private static DataBroker mockDataBroker(final Object readData) {
final ReadTransaction readOnlyTransaction = mock(ReadTransaction.class);
- if (readData instanceof DataObject) {
- doReturn(immediateFluentFuture(Optional.of((DataObject)readData)))
+ if (readData instanceof DataObject dataObject) {
+ doReturn(immediateFluentFuture(Optional.of(dataObject)))
.when(readOnlyTransaction).read(any(), any());
- } else if (readData instanceof Exception) {
- doReturn(immediateFailedFluentFuture((Exception)readData)).when(readOnlyTransaction).read(any(), any());
+ } else if (readData instanceof Exception cause) {
+ doReturn(immediateFailedFluentFuture(cause)).when(readOnlyTransaction).read(any(), any());
} else {
doReturn(immediateFluentFuture(Optional.empty())).when(readOnlyTransaction).read(any(), any());
}
private long expiration = 0L;
private final Claim claim;
- public AuthenticationBuilder(Claim claim) {
+ public AuthenticationBuilder(final Claim claim) {
this.claim = claim;
}
- public AuthenticationBuilder setExpiration(long expiration) {
+ public AuthenticationBuilder setExpiration(final long expiration) {
this.expiration = expiration;
return this;
}
long expiration = 0L;
Claim claim;
- private ImmutableAuthentication(AuthenticationBuilder base) {
+ private ImmutableAuthentication(final AuthenticationBuilder base) {
if (base.claim == null) {
throw new IllegalStateException("The Claim is null.");
}
}
@Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (!(object instanceof Authentication)) {
- return false;
- }
- Authentication authentication = (Authentication) object;
- return expiration == authentication.expiration()
- && Objects.equals(claim.roles(), authentication.roles())
- && Objects.equals(claim.domain(), authentication.domain())
- && Objects.equals(claim.userId(), authentication.userId())
- && Objects.equals(claim.user(), authentication.user())
- && Objects.equals(claim.clientId(), authentication.clientId());
+ public boolean equals(final Object obj) {
+ return this == obj || obj instanceof Authentication other
+ && expiration == other.expiration()
+ && Objects.equals(claim.roles(), other.roles())
+ && Objects.equals(claim.domain(), other.domain())
+ && Objects.equals(claim.userId(), other.userId())
+ && Objects.equals(claim.user(), other.user())
+ && Objects.equals(claim.clientId(), other.clientId());
}
@Override
public ClaimBuilder() {
}
- public ClaimBuilder(Claim claim) {
+ public ClaimBuilder(final Claim claim) {
clientId = claim.clientId();
userId = claim.userId();
user = claim.user();
roles.addAll(claim.roles());
}
- public ClaimBuilder setClientId(String clientId) {
+ public ClaimBuilder setClientId(final String clientId) {
this.clientId = Strings.nullToEmpty(clientId).trim();
return this;
}
- public ClaimBuilder setUserId(String userId) {
+ public ClaimBuilder setUserId(final String userId) {
this.userId = Strings.nullToEmpty(userId).trim();
return this;
}
- public ClaimBuilder setUser(String userName) {
+ public ClaimBuilder setUser(final String userName) {
user = Strings.nullToEmpty(userName).trim();
return this;
}
- public ClaimBuilder setDomain(String domain) {
+ public ClaimBuilder setDomain(final String domain) {
this.domain = Strings.nullToEmpty(domain).trim();
return this;
}
- public ClaimBuilder addRoles(Set<String> theRoles) {
+ public ClaimBuilder addRoles(final Set<String> theRoles) {
for (String role : theRoles) {
addRole(role);
}
return this;
}
- public ClaimBuilder addRole(String role) {
+ public ClaimBuilder addRole(final String role) {
roles.add(Strings.nullToEmpty(role).trim());
return this;
}
protected String domain;
protected ImmutableSet<String> roles;
- protected ImmutableClaim(ClaimBuilder base) {
+ protected ImmutableClaim(final ClaimBuilder base) {
clientId = base.clientId;
userId = base.userId;
user = base.user;
}
@Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (!(object instanceof Claim)) {
- return false;
- }
- Claim claim = (Claim) object;
- return Objects.equals(roles, claim.roles())
- && Objects.equals(domain, claim.domain())
- && Objects.equals(userId, claim.userId())
- && Objects.equals(user, claim.user())
- && Objects.equals(clientId, claim.clientId());
+ public boolean equals(final Object obj) {
+ return this == obj || obj instanceof Claim other
+ && Objects.equals(roles, other.roles())
+ && Objects.equals(domain, other.domain())
+ && Objects.equals(userId, other.userId())
+ && Objects.equals(user, other.user())
+ && Objects.equals(clientId, other.clientId());
}
@Override
public class PasswordCredentialBuilder {
private final MutablePasswordCredentials pc = new MutablePasswordCredentials();
- public PasswordCredentialBuilder setUserName(String username) {
+ public PasswordCredentialBuilder setUserName(final String username) {
pc.username = username;
return this;
}
- public PasswordCredentialBuilder setPassword(String password) {
+ public PasswordCredentialBuilder setPassword(final String password) {
pc.password = password;
return this;
}
- public PasswordCredentialBuilder setDomain(String domain) {
+ public PasswordCredentialBuilder setDomain(final String domain) {
pc.domain = domain;
return this;
}
}
@Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (!(object instanceof PasswordCredentials)) {
- return false;
- }
- PasswordCredentials passwordCredentials = (PasswordCredentials) object;
- return Objects.equals(username, passwordCredentials.username())
- && Objects.equals(password, passwordCredentials.password())
- && Objects.equals(domain, passwordCredentials.domain());
+ public boolean equals(final Object obj) {
+ return this == obj || obj instanceof PasswordCredentials other
+ && Objects.equals(username, other.username())
+ && Objects.equals(password, other.password())
+ && Objects.equals(domain, other.domain());
}
@Override
@Override
public String getBaseURL() {
final var endpoint = serviceRuntime.getProperty(HttpServiceRuntimeConstants.HTTP_SERVICE_ENDPOINT);
- if (endpoint instanceof String) {
- return (String) endpoint;
- } else if (endpoint instanceof String[]) {
- return getBaseURL(Arrays.asList((String[]) endpoint));
+ if (endpoint instanceof String str) {
+ return str;
+ } else if (endpoint instanceof String[] endpoints) {
+ return getBaseURL(Arrays.asList(endpoints));
} else if (endpoint instanceof Collection) {
// Safe as per OSGi Compendium R7 section 140.15.3.1
@SuppressWarnings("unchecked")