This commit is contained in:
Stéphane Nicoll
2025-02-27 14:26:51 +01:00
parent 4ffe014733
commit 3a60f3638e
178 changed files with 404 additions and 489 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.ws.soap.security.callback;
import java.io.Serial;
import java.io.Serializable;
import javax.security.auth.callback.Callback;
@@ -29,6 +30,7 @@ import javax.security.auth.callback.Callback;
*/
public class CleanupCallback implements Callback, Serializable {
@Serial
private static final long serialVersionUID = 4744181820980888237L;
}

View File

@@ -637,7 +637,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl
protected void secureMessage(SoapMessage soapMessage, MessageContext messageContext)
throws WsSecuritySecurementException {
List<HandlerAction> securementActionsVector = new ArrayList<HandlerAction>();
List<HandlerAction> securementActionsVector;
try {
securementActionsVector = WSSecurityUtil.decodeHandlerAction(securementActions, wssConfig);
}
@@ -820,11 +820,10 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl
List<WSHandlerResult> handlerResults;
if ((handlerResults = (List<WSHandlerResult>) messageContext
.getProperty(WSHandlerConstants.RECV_RESULTS)) == null) {
handlerResults = new ArrayList<WSHandlerResult>();
handlerResults = new ArrayList<>();
messageContext.setProperty(WSHandlerConstants.RECV_RESULTS, handlerResults);
}
WSHandlerResult rResult = new WSHandlerResult(validationActor, results,
Collections.<Integer, List<WSSecurityEngineResult>>emptyMap());
WSHandlerResult rResult = new WSHandlerResult(validationActor, results, Collections.emptyMap());
handlerResults.add(0, rResult);
messageContext.setProperty(WSHandlerConstants.RECV_RESULTS, handlerResults);
}

View File

@@ -46,8 +46,7 @@ public abstract class AbstractWsPasswordCallbackHandler extends AbstractCallback
*/
@Override
protected final void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException {
if (callback instanceof WSPasswordCallback) {
WSPasswordCallback passwordCallback = (WSPasswordCallback) callback;
if (callback instanceof WSPasswordCallback passwordCallback) {
switch (passwordCallback.getUsage()) {
case WSPasswordCallback.DECRYPT:
handleDecrypt(passwordCallback);

View File

@@ -41,7 +41,7 @@ import org.springframework.util.Assert;
public class SimplePasswordValidationCallbackHandler extends AbstractWsPasswordCallbackHandler
implements InitializingBean {
private Map<String, String> users = new HashMap<String, String>();
private Map<String, String> users = new HashMap<>();
/**
* Sets the users to validate against. Property names are usernames, property values

View File

@@ -94,7 +94,7 @@ public class SpringSecurityPasswordValidationCallbackHandler extends AbstractWsP
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(principal,
principal.getPassword(), user.getAuthorities());
if (logger.isDebugEnabled()) {
logger.debug("Authentication success: " + authRequest.toString());
logger.debug("Authentication success: " + authRequest);
}
authRequest.setDetails(user);
SecurityContextHolder.getContext().setAuthentication(authRequest);

View File

@@ -16,6 +16,7 @@
package org.springframework.ws.soap.security.wss4j2.callback;
import java.io.Serial;
import java.io.Serializable;
import javax.security.auth.callback.Callback;
@@ -34,6 +35,7 @@ import org.apache.wss4j.common.principal.WSUsernameTokenPrincipalImpl;
*/
public class UsernameTokenPrincipalCallback implements Callback, Serializable {
@Serial
private static final long serialVersionUID = -3022202225157082715L;
private final WSUsernameTokenPrincipalImpl principal;

View File

@@ -89,8 +89,7 @@ public class CryptoFactoryBean implements FactoryBean<Crypto>, InitializingBean
return resource.getFile().getAbsolutePath();
}
catch (IOException ex) {
if (resource instanceof ClassPathResource) {
ClassPathResource classPathResource = (ClassPathResource) resource;
if (resource instanceof ClassPathResource classPathResource) {
return classPathResource.getPath();
}
else {

View File

@@ -16,6 +16,7 @@
package org.springframework.ws.soap.security.x509;
import java.io.Serial;
import java.security.cert.X509Certificate;
import java.util.Collection;
@@ -35,6 +36,7 @@ public class X509AuthenticationToken extends AbstractAuthenticationToken {
// ~ Instance fields
// ================================================================================================
@Serial
private static final long serialVersionUID = 1L;
private Object principal;

View File

@@ -65,7 +65,7 @@ public class EhCacheBasedX509UserCache implements X509UserCache, InitializingBea
@Override
public UserDetails getUserFromCache(X509Certificate userCert) {
Element element = null;
Element element;
try {
element = cache.get(userCert);

View File

@@ -51,7 +51,7 @@ public class CallbackHandlerChainTest {
}
@Test
public void testUnsupported() throws Exception {
public void testUnsupported() {
assertThatExceptionOfType(UnsupportedCallbackException.class).isThrownBy(() -> {

View File

@@ -54,13 +54,13 @@ public class SaajWss4jMessageInterceptorSignTest extends Wss4jMessageInterceptor
interceptor.setSecurementUsername("rsaKey");
SOAPMessage saajMessage = saajSoap11MessageFactory.createMessage();
transformer.transform(new StringSource(PAYLOAD), new DOMResult(saajMessage.getSOAPBody()));
SoapMessage message = new SaajSoapMessage(saajMessage, saajSoap11MessageFactory);
SaajSoapMessage message = new SaajSoapMessage(saajMessage, saajSoap11MessageFactory);
MessageContext messageContext = new DefaultMessageContext(message,
new SaajSoapMessageFactory(saajSoap11MessageFactory));
interceptor.secureMessage(message, messageContext);
SOAPHeader header = ((SaajSoapMessage) message).getSaajMessage().getSOAPHeader();
SOAPHeader header = message.getSaajMessage().getSOAPHeader();
Iterator<?> iterator = header.getChildElements(new QName(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"));
@@ -96,13 +96,13 @@ public class SaajWss4jMessageInterceptorSignTest extends Wss4jMessageInterceptor
interceptor.setAddInclusivePrefixes(false);
SOAPMessage saajMessage = saajSoap11MessageFactory.createMessage();
transformer.transform(new StringSource(PAYLOAD), new DOMResult(saajMessage.getSOAPBody()));
SoapMessage message = new SaajSoapMessage(saajMessage, saajSoap11MessageFactory);
SaajSoapMessage message = new SaajSoapMessage(saajMessage, saajSoap11MessageFactory);
MessageContext messageContext = new DefaultMessageContext(message,
new SaajSoapMessageFactory(saajSoap11MessageFactory));
interceptor.secureMessage(message, messageContext);
SOAPHeader header = ((SaajSoapMessage) message).getSaajMessage().getSOAPHeader();
SOAPHeader header = message.getSaajMessage().getSOAPHeader();
Iterator<?> iterator = header.getChildElements(new QName(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"));

View File

@@ -87,7 +87,7 @@ public abstract class Wss4jMessageInterceptorSamlTest extends Wss4jTest {
return new SamlCallbackHandler(crypto, userCert);
}
private class SamlCallbackHandler implements CallbackHandler {
private static class SamlCallbackHandler implements CallbackHandler {
private Crypto crypto;
@@ -103,9 +103,8 @@ public abstract class Wss4jMessageInterceptorSamlTest extends Wss4jTest {
public void handle(Callback[] callbacks) {
for (Callback value : callbacks) {
if (value instanceof SAMLCallback) {
if (value instanceof SAMLCallback callback) {
SAMLCallback callback = (SAMLCallback) value;
callback.setSamlVersion(Version.SAML_20);
callback.setIssuerCrypto(crypto);
callback.setIssuerKeyName("rsaKey");

View File

@@ -63,7 +63,7 @@ public abstract class Wss4jMessageInterceptorTimestampTest extends Wss4jTest {
}
@Test
public void testValidateTimestampWithExpiredTtl() throws Exception {
public void testValidateTimestampWithExpiredTtl() {
assertThatExceptionOfType(WsSecurityValidationException.class).isThrownBy(() -> {
@@ -77,7 +77,7 @@ public abstract class Wss4jMessageInterceptorTimestampTest extends Wss4jTest {
}
@Test
public void testValidateTimestampWithExpiredTtlCustomTtl() throws Exception {
public void testValidateTimestampWithExpiredTtlCustomTtl() {
assertThatExceptionOfType(WsSecurityValidationException.class).isThrownBy(() -> {

View File

@@ -34,7 +34,7 @@ public abstract class Wss4jMessageInterceptorUsernameTokenTest extends Wss4jTest
private Properties users = new Properties();
@Override
protected void onSetup() throws Exception {
protected void onSetup() {
users.setProperty("Bert", "Ernie");
}

View File

@@ -65,7 +65,7 @@ public abstract class Wss4jTest {
saajSoap11MessageFactory = MessageFactory.newInstance();
saajSoap12MessageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
Map<String, String> namespaces = new HashMap<String, String>();
Map<String, String> namespaces = new HashMap<>();
namespaces.put("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/");
namespaces.put("wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
namespaces.put("ds", "http://www.w3.org/2000/09/xmldsig#");