Joe Grandja 3 жил өмнө
parent
commit
a38b66adf2

+ 0 - 6
docs/src/docs/asciidoc/examples/src/test/java/sample/test/SpringTestContext.java

@@ -95,12 +95,6 @@ public class SpringTestContext implements Closeable {
 		return this;
 	}
 
-//	public SpringTestContext context(String configuration) {
-//		InMemoryXmlWebApplicationContext context = new InMemoryXmlWebApplicationContext(configuration);
-//		this.context = context;
-//		return this;
-//	}
-
 	public SpringTestContext mockMvcAfterSpringSecurityOk() {
 		return addFilter(new OncePerRequestFilter() {
 			@Override

+ 10 - 8
oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/jackson2/OAuth2AuthorizationRequestDeserializer.java

@@ -23,7 +23,6 @@ import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.util.StdConverter;
 
 import org.springframework.security.oauth2.core.AuthorizationGrantType;
 import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
@@ -39,8 +38,6 @@ import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequ
  */
 final class OAuth2AuthorizationRequestDeserializer extends JsonDeserializer<OAuth2AuthorizationRequest> {
 
-	private static final StdConverter<JsonNode, AuthorizationGrantType> AUTHORIZATION_GRANT_TYPE_CONVERTER = new StdConverters.AuthorizationGrantTypeConverter();
-
 	@Override
 	public OAuth2AuthorizationRequest deserialize(JsonParser parser, DeserializationContext context)
 			throws IOException {
@@ -51,8 +48,8 @@ final class OAuth2AuthorizationRequestDeserializer extends JsonDeserializer<OAut
 
 	private OAuth2AuthorizationRequest deserialize(JsonParser parser, ObjectMapper mapper, JsonNode root)
 			throws JsonParseException {
-		AuthorizationGrantType authorizationGrantType = AUTHORIZATION_GRANT_TYPE_CONVERTER
-				.convert(JsonNodeUtils.findObjectNode(root, "authorizationGrantType"));
+		AuthorizationGrantType authorizationGrantType = convertAuthorizationGrantType(
+				JsonNodeUtils.findObjectNode(root, "authorizationGrantType"));
 		Builder builder = getBuilder(parser, authorizationGrantType);
 		builder.authorizationUri(JsonNodeUtils.findStringValue(root, "authorizationUri"));
 		builder.clientId(JsonNodeUtils.findStringValue(root, "clientId"));
@@ -71,10 +68,15 @@ final class OAuth2AuthorizationRequestDeserializer extends JsonDeserializer<OAut
 		if (AuthorizationGrantType.AUTHORIZATION_CODE.equals(authorizationGrantType)) {
 			return OAuth2AuthorizationRequest.authorizationCode();
 		}
-		if (AuthorizationGrantType.IMPLICIT.equals(authorizationGrantType)) {
-			return OAuth2AuthorizationRequest.implicit();
-		}
 		throw new JsonParseException(parser, "Invalid authorizationGrantType");
 	}
 
+	private static AuthorizationGrantType convertAuthorizationGrantType(JsonNode jsonNode) {
+		String value = JsonNodeUtils.findStringValue(jsonNode, "value");
+		if (AuthorizationGrantType.AUTHORIZATION_CODE.getValue().equalsIgnoreCase(value)) {
+			return AuthorizationGrantType.AUTHORIZATION_CODE;
+		}
+		return null;
+	}
+
 }

+ 0 - 109
oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/jackson2/StdConverters.java

@@ -1,109 +0,0 @@
-/*
- * Copyright 2020-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.security.oauth2.server.authorization.jackson2;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.util.StdConverter;
-
-import org.springframework.security.oauth2.core.AuthenticationMethod;
-import org.springframework.security.oauth2.core.AuthorizationGrantType;
-import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
-import org.springframework.security.oauth2.core.OAuth2AccessToken;
-
-/**
- * {@code StdConverter} implementations.
- *
- * @author Joe Grandja
- * @since 0.1.2
- */
-abstract class StdConverters {
-
-	static final class AccessTokenTypeConverter extends StdConverter<JsonNode, OAuth2AccessToken.TokenType> {
-
-		@Override
-		public OAuth2AccessToken.TokenType convert(JsonNode jsonNode) {
-			String value = JsonNodeUtils.findStringValue(jsonNode, "value");
-			if (OAuth2AccessToken.TokenType.BEARER.getValue().equalsIgnoreCase(value)) {
-				return OAuth2AccessToken.TokenType.BEARER;
-			}
-			return null;
-		}
-
-	}
-
-	static final class ClientAuthenticationMethodConverter extends StdConverter<JsonNode, ClientAuthenticationMethod> {
-
-		@Override
-		public ClientAuthenticationMethod convert(JsonNode jsonNode) {
-			String value = JsonNodeUtils.findStringValue(jsonNode, "value");
-			if (ClientAuthenticationMethod.CLIENT_SECRET_BASIC.getValue().equalsIgnoreCase(value)
-					|| ClientAuthenticationMethod.BASIC.getValue().equalsIgnoreCase(value)) {
-				return ClientAuthenticationMethod.CLIENT_SECRET_BASIC;
-			}
-			if (ClientAuthenticationMethod.CLIENT_SECRET_POST.getValue().equalsIgnoreCase(value)
-					|| ClientAuthenticationMethod.POST.getValue().equalsIgnoreCase(value)) {
-				return ClientAuthenticationMethod.CLIENT_SECRET_POST;
-			}
-			if (ClientAuthenticationMethod.NONE.getValue().equalsIgnoreCase(value)) {
-				return ClientAuthenticationMethod.NONE;
-			}
-			return null;
-		}
-
-	}
-
-	static final class AuthorizationGrantTypeConverter extends StdConverter<JsonNode, AuthorizationGrantType> {
-
-		@Override
-		public AuthorizationGrantType convert(JsonNode jsonNode) {
-			String value = JsonNodeUtils.findStringValue(jsonNode, "value");
-			if (AuthorizationGrantType.AUTHORIZATION_CODE.getValue().equalsIgnoreCase(value)) {
-				return AuthorizationGrantType.AUTHORIZATION_CODE;
-			}
-			if (AuthorizationGrantType.IMPLICIT.getValue().equalsIgnoreCase(value)) {
-				return AuthorizationGrantType.IMPLICIT;
-			}
-			if (AuthorizationGrantType.CLIENT_CREDENTIALS.getValue().equalsIgnoreCase(value)) {
-				return AuthorizationGrantType.CLIENT_CREDENTIALS;
-			}
-			if (AuthorizationGrantType.PASSWORD.getValue().equalsIgnoreCase(value)) {
-				return AuthorizationGrantType.PASSWORD;
-			}
-			return null;
-		}
-
-	}
-
-	static final class AuthenticationMethodConverter extends StdConverter<JsonNode, AuthenticationMethod> {
-
-		@Override
-		public AuthenticationMethod convert(JsonNode jsonNode) {
-			String value = JsonNodeUtils.findStringValue(jsonNode, "value");
-			if (AuthenticationMethod.HEADER.getValue().equalsIgnoreCase(value)) {
-				return AuthenticationMethod.HEADER;
-			}
-			if (AuthenticationMethod.FORM.getValue().equalsIgnoreCase(value)) {
-				return AuthenticationMethod.FORM;
-			}
-			if (AuthenticationMethod.QUERY.getValue().equalsIgnoreCase(value)) {
-				return AuthenticationMethod.QUERY;
-			}
-			return null;
-		}
-
-	}
-
-}

+ 0 - 7
oauth2-authorization-server/src/test/java/org/springframework/security/config/test/SpringTestContext.java

@@ -27,7 +27,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor;
 import org.springframework.mock.web.MockServletConfig;
 import org.springframework.mock.web.MockServletContext;
-import org.springframework.security.config.util.InMemoryXmlWebApplicationContext;
 import org.springframework.test.context.web.GenericXmlWebContextLoader;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.request.RequestPostProcessor;
@@ -90,12 +89,6 @@ public class SpringTestContext implements Closeable {
 		return this;
 	}
 
-	public SpringTestContext context(String configuration) {
-		InMemoryXmlWebApplicationContext context = new InMemoryXmlWebApplicationContext(configuration);
-		this.context = context;
-		return this;
-	}
-
 	public SpringTestContext mockMvcAfterSpringSecurityOk() {
 		return addFilter(new OncePerRequestFilter() {
 			@Override

+ 0 - 77
oauth2-authorization-server/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java

@@ -1,77 +0,0 @@
-/*
- * Copyright 2020-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.security.config.util;
-
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.core.io.Resource;
-import org.springframework.security.util.InMemoryResource;
-
-/**
- * @author Luke Taylor
- * @author Eddú Meléndez
- */
-public class InMemoryXmlApplicationContext extends AbstractXmlApplicationContext {
-	static final String BEANS_OPENING = "<b:beans xmlns='http://www.springframework.org/schema/security'\n"
-			+ "    xmlns:context='http://www.springframework.org/schema/context'\n"
-			+ "    xmlns:b='http://www.springframework.org/schema/beans'\n"
-			+ "    xmlns:aop='http://www.springframework.org/schema/aop'\n"
-			+ "    xmlns:mvc='http://www.springframework.org/schema/mvc'\n"
-			+ "    xmlns:websocket='http://www.springframework.org/schema/websocket'\n"
-			+ "    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\n"
-			+ "    xsi:schemaLocation='http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-2.5.xsd\n"
-			+ "http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-2.5.xsd\n"
-			+ "http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd\n"
-			+ "http://www.springframework.org/schema/websocket https://www.springframework.org/schema/websocket/spring-websocket.xsd\n"
-			+ "http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-2.5.xsd\n"
-			+ "http://www.springframework.org/schema/security https://www.springframework.org/schema/security/spring-security-";
-	static final String BEANS_CLOSE = "</b:beans>\n";
-
-	static final String SPRING_SECURITY_VERSION = "5.4";
-
-	Resource inMemoryXml;
-
-	public InMemoryXmlApplicationContext(String xml) {
-		this(xml, SPRING_SECURITY_VERSION, null);
-	}
-
-	public InMemoryXmlApplicationContext(String xml, ApplicationContext parent) {
-		this(xml, SPRING_SECURITY_VERSION, parent);
-	}
-
-	public InMemoryXmlApplicationContext(String xml, String secVersion, ApplicationContext parent) {
-		String fullXml = BEANS_OPENING + secVersion + ".xsd'>\n" + xml + BEANS_CLOSE;
-		inMemoryXml = new InMemoryResource(fullXml);
-		setAllowBeanDefinitionOverriding(true);
-		setParent(parent);
-		refresh();
-	}
-
-	@Override
-	protected DefaultListableBeanFactory createBeanFactory() {
-		return new DefaultListableBeanFactory(getInternalParentBeanFactory()) {
-			@Override
-			protected boolean allowAliasOverriding() {
-				return true;
-			}
-		};
-	}
-
-	protected Resource[] getConfigResources() {
-		return new Resource[] { inMemoryXml };
-	}
-}

+ 0 - 57
oauth2-authorization-server/src/test/java/org/springframework/security/config/util/InMemoryXmlWebApplicationContext.java

@@ -1,57 +0,0 @@
-/*
- * Copyright 2020-2022 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.security.config.util;
-
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.io.Resource;
-import org.springframework.security.util.InMemoryResource;
-import org.springframework.web.context.support.AbstractRefreshableWebApplicationContext;
-
-import static org.springframework.security.config.util.InMemoryXmlApplicationContext.BEANS_CLOSE;
-import static org.springframework.security.config.util.InMemoryXmlApplicationContext.BEANS_OPENING;
-import static org.springframework.security.config.util.InMemoryXmlApplicationContext.SPRING_SECURITY_VERSION;
-
-/**
- * @author Joe Grandja
- */
-public class InMemoryXmlWebApplicationContext extends AbstractRefreshableWebApplicationContext {
-	private Resource inMemoryXml;
-
-	public InMemoryXmlWebApplicationContext(String xml) {
-		this(xml, SPRING_SECURITY_VERSION, null);
-	}
-
-	public InMemoryXmlWebApplicationContext(String xml, ApplicationContext parent) {
-		this(xml, SPRING_SECURITY_VERSION, parent);
-	}
-
-	public InMemoryXmlWebApplicationContext(String xml, String secVersion, ApplicationContext parent) {
-		String fullXml = BEANS_OPENING + secVersion + ".xsd'>\n" + xml + BEANS_CLOSE;
-		inMemoryXml = new InMemoryResource(fullXml);
-		setAllowBeanDefinitionOverriding(true);
-		setParent(parent);
-	}
-
-	@Override
-	protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws BeansException {
-		XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
-		reader.loadBeanDefinitions(new Resource[] { inMemoryXml });
-	}
-
-}