春のセキュリティを備えたOAuth2サーバーをセットアップしました。リソースを保護せずに、このOAuthサーバーをSpringセキュリティで使用するクライアントアプリケーションを作成したいと思います。つまり、SpringSecurity3.1を使用してクライアント側からoauth2を実行したいだけです。次の構成を作成しましたが、oauth2サーバーの承認ページにリダイレクトする前に資格情報を要求します。しかし、クライアント側から資格情報を要求する前に、ユーザーをoauth2サーバー認証ページにリダイレクトしたいと思います。次の構成を使用しています
<http auto-config='true' xmlns="http://www.springframework.org/schema/security">
<intercept-url pattern="/product/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<custom-filter ref="oauth2ClientFilter" after="EXCEPTION_TRANSLATION_FILTER" />
</http>
<authentication-manager xmlns="http://www.springframework.org/schema/security">
<authentication-provider>
<user-service>
<user name="jimi" password="jimi" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
<!--apply the oauth client context -->
<oauth:client id="oauth2ClientFilter" />
<oauth:resource id="fooClient" type="authorization_code"
client-id="foo" client-secret="secret" access-token-uri="${accessTokenUri}"
user-authorization-uri="${userAuthorizationUri}" scope="read" />
<bean id="dService" class="com.abc.service.DServiceImpl">
<property name="dURL" value="${dURL}"></property>
<property name="dRestTemplate">
<oauth:rest-template resource="fooClient" />
</property>
</bean>
だから私は/producturlがoauth2サーバーにアクセスする必要があるだけです。残りのURLマッピングは、これがなくても機能するはずです。また、ユーザーはクライアントに対して匿名である必要があります(クライアント側からのログインを表示する必要はありません)。
しかし、アプリケーション「http:// localhost / client-sample / product / 1」を実行すると、「http:// localhost / client-sample/spring_security_login」と表示されます。しかし、私はユーザーがoaut2サーバーページにリダイレクトする必要があります。