복붙노트

[SPRING] 스프링 보안 Oauth2에서 XML을 사용하여 / oauth / check_token을 활성화하는 방법

SPRING

스프링 보안 Oauth2에서 XML을 사용하여 / oauth / check_token을 활성화하는 방법

성공적으로 '/ oauth / check_token'엔드 포인트를 스프링 보안 3.2. * 및 javaconfig를 사용하여 활성화했지만 현재 스프링 보안 3.1.4로 제한되어 있으며 XML 구성에 넘어갔습니다. '/ oauth / token'엔드 포인트는 내가 원하는대로 작동하지만 check_token 엔드 포인트를 사용 가능하게 할 수 없으며 어떻게해야하는지 설명하는 (javaconfig가 아닌) 문서를 찾을 수 없습니다.

바닐라 인증 서버 설정 :

<oauth:authorization-server 
        client-details-service-ref="client-service" 
        token-services-ref="tokenServices" >
    <oauth:refresh-token disabled="false" />
    <oauth:client-credentials disabled="false" />
    <oauth:password authentication-manager-ref="userAuthenticationManager"  />       
</oauth:authorization-server>

http 보안 설정 :

<sec:http 
        auto-config="true"
        pattern="/oauth/token" 
        create-session="stateless"
        authentication-manager-ref="clientAuthenticationManager">
    <sec:intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
    <sec:anonymous enabled="false"/>
    <sec:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
</sec:http>

나는 성공하지 않고 다음 http config를 추가하려고했습니다.

<sec:http 
        auto-config="true"
        pattern="/oauth/check_token" 
        create-session="stateless"
        authentication-manager-ref="clientAuthenticationManager">
    <sec:intercept-url pattern="/oauth/check_token" access="IS_AUTHENTICATED_FULLY" />
    <sec:anonymous enabled="false"/>
    <sec:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
</sec:http>

제발, 어떤 제안. 실제로 좋은 예가 될 것입니다.

가장 좋은 ./Kristof입니다

해결법

  1. ==============================

    1.봄 oauth2의 마지막 버전을 사용하십시오 :

    봄 oauth2의 마지막 버전을 사용하십시오 :

    <dependency>
      <groupId>org.springframework.security.oauth</groupId>
      <artifactId>spring-security-oauth2</artifactId>
      <version>2.0.10.RELEASE</version>
    </dependency>
    

    스프링 보안 oauth 파일 설정에서 xsd의 올바른 버전이 사용 중인지 확인하십시오 :

    http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
    

    요소 authorization-server에 check-token-enabled = "true"옵션을 삽입하십시오.

    <oauth:authorization-server ... check-token-enabled="true">
    ... 
    </oauth:authorization-server>
    
  2. ==============================

    2.CheckTokenEndpoint (org.springframework.security.oauth2.provider.endpoint.CheckTokenEndpoint) 유형의 bean을 작성해야합니다.

    CheckTokenEndpoint (org.springframework.security.oauth2.provider.endpoint.CheckTokenEndpoint) 유형의 bean을 작성해야합니다.

  3. from https://stackoverflow.com/questions/28629952/how-to-enable-oauth-check-token-with-spring-security-oauth2-using-xml by cc-by-sa and MIT license