2015-07-21 87 views
0

我已经在应用程序中实现了spring-security-oauth2,并付出了很多努力。 一切工作正常。该资源仅被授权令牌访问。 但是,当我尝试使用授权标头访问不安全的资源时,它会验证访问令牌。访问不安全资源时访问令牌无效oauth2

如果访问令牌有效,那么它的工作权限,但如果访问令牌无效,它会显示错误Invalid access_token

回答

1

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"/> 

希望能够解决您的问题

1

您必须在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获得保护。确保你没有!