Username/Password/ClientId/Secret을 허용하는 Spring을 사용하는 OAuth 토큰 생성이 완벽하게 작동합니다. 외부 클라이언트의 경우 사용자 이름과 암호로 입력해야 OAuth Token이 생성됩니다.외부 클라이언트 용 ClientId 및 ClientSecret이없는 Spring OAuth2 토큰
<security:http pattern="/oauth/token" create-session="stateless"
authentication-manager-ref="clientAuthenticationManager"
xmlns="http://www.springframework.org/schema/security">
<security:intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<security:anonymous enabled="false" />
<security:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<!-- include this only if you need to authenticate clients via request parameters -->
<security:custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER" />
<security:access-denied-handler ref="oauthAccessDeniedHandler" />
</security:http>
다음은 추가해야하는 새 코드이지만 브라우저에서 사용자 이름과 암호를 묻는 것입니다. 우리는 클라이언트 ID없이의 OAuth를 생성하고 내부의 OAuth를 생성하는 클라이언트 ID를 전달할 수있는 경우
<security:http pattern="/**external**/oauth/token" create-session="stateless"
authentication-manager-ref="clientAuthenticationManager"
xmlns="http://www.springframework.org/schema/security">
<security:intercept-url pattern="/external/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<security:anonymous enabled="false" />
<security:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<security:custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER" />
<security:access-denied-handler ref="oauthAccessDeniedHandler" />
</security:http>
는 안내하시기 바랍니다.
당신의 의견에 동의하지만, 내가 달성하고자하는 것은 내부적으로 전달 된 clientId를 사용하는 토큰 생성입니다. 여기서 사용자는 스프링 보안 xml 구성으로 사용자 이름과 암호 만 전달합니다. – Rahul
암시 적 토큰을 발행하는 것에 대해 이야기하고 있습니까? 암시 적 권한 부여를 사용하면 Oauth 클라이언트는 사용자 브라우저를 서버의/oauth/authorize로 리디렉션합니다. 이 URL은 보호되어 있으므로 브라우저가 로그인 페이지로 리디렉션되고 사용자는 양식 기반 인증을 사용하여 인증됩니다. 로그인이 끝나면 브라우저에 승인 페이지가 표시되고 use r은 clientId가 식별 한 응용 프로그램에 대한 액세스를 승인/거부합니다. OAuth 클라이언트는 신임장을 보지 않아야하며, 신뢰할 수있는 OAuth 서버 만이 그렇지 않으면 OAuth를 사용할 필요가 없습니다. –