访问不安全资源时访问令牌无效oauth2
问题描述:
我已经在应用程序中实现了spring-security-oauth2,并付出了很多努力。 一切工作正常。该资源仅被授权令牌访问。 但是,当我尝试使用授权标头访问不安全的资源时,它会验证访问令牌。访问不安全资源时访问令牌无效oauth2
如果访问令牌有效,那么它的工作权限,但如果访问令牌无效,它会显示错误Invalid access_token
。
答
Spring安全拦截每个请求并检查access_token的有效性,除非显式用户指定允许访问URl。如果你想不拦截URL模式和检查认证 一样,那么代码会像
<http ...>
<intercept-url pattern="/app/**" access="IS_AUTHENTICATED_FULLY" />
<intercept-url pattern="/oauth2/resource/**" access="ROLE_USER" />
</http>
但是,如果你要访问的资源,没有任何安全的,你可以做这样的事情:
<http pattern="/resources/**" security="none"/>
希望能够解决您的问题
答
您必须在OAuth配置文件中配置HTTP模式。检查您是否使用'*'配置网址
<http pattern="/detail/**" create-session="never"
entry-point-ref="oauthAuthenticationEntryPoint"
xmlns="http://www.springframework.org/schema/security">
<anonymous enabled="false" />
<!-- intercept-url pattern -->
<intercept-url pattern="/detail/**" access="IS_AUTHENTICATED_FULLY" />
<custom-filter ref="resourceServerFilter" before="PRE_AUTH_FILTER" />
<access-denied-handler ref="oauthAccessDeniedHandler" />
</http>
例如,在上述配置中,我已经使所有启动“详细信息”的API受到保护。您也可能在不知不觉中/无意中使API获得保护。确保你没有!