当前位置:   article > 正文

springsecurity+oauth2.0 分布式认证授权-order资源服务器的配置4_enableresourceserver

enableresourceserver

一 注解 @EnableResourceServer 的配置

1.1 配置资源服务

1.1.1 使用

使用注解@EnableResourceServer 注解到一个 @Configuration 配置类上,并且必须使用 ResourceServerConfigurer 这个 配置对象来进行配置(可以选择继承自 ResourceServerConfigurerAdapter 然后覆写其中的方法,参数就是这个 对象的实例)

1.1.2 属性介绍

下面是一些可以配置的属性:
ResourceServerSecurityConfigurer 中主要包括:
tokenServices ResourceServerTokenServices 类的实例,用来实现令牌服务。
tokenStore TokenStore 类的实例,指定令牌如何访问,与 tokenServices 配置可选
resourceId :这个资源服务的 ID ,这个属性是可选的,但是推荐设置并在授权服务中进行验证。
其他的拓展属性例如 tokenExtractor 令牌提取器用来提取请求中的令牌。
HttpSecurity 配置与 Spring Security 类似: 请求匹配器,用来设置需要进行保护的资源路径,默认的情况下是保护资源服务的全部路径。
通过 http.authorizeRequests() 来设置受保护资源的访问规则 ,其他的自定义权限保护规则通过 HttpSecurity 来进行配置。
@EnableResourceServer 注解自动增加了一个类型为 OAuth2AuthenticationProcessingFilter 的过滤器链

1.1.3 配置操作

新建一个ResouceServerConfig配置类,加上注解 @EnableResourceServer

 1.2 验证令牌token

1.2.1 属性配置

ResourceServerTokenServices 是组成授权服务的另一半。
1. 如果你的授权服务和资源服务在同一个应用程序上的 话,你可以使用 DefaultTokenServices ,这样的话,你就不用考虑关于实现所有必要的接口的一致性问题。
2. 如果你的授权服务和资源服务是分离开的,那么你就必须要确保能够 匹配授权服务提供的 ResourceServerTokenServices 它知道如何对令牌进行解码
3.令牌解析方法: 使用 DefaultTokenServices 在资源服务器本地配置令牌存储、解码、解析方式。
4. 使用 RemoteTokenServices 资源服务器通过 HTTP 请求来解码令牌, 每次都请求授权服务器端点 /oauth/check_token,使用授权服务的 /oauth/check_token 端点,你需要在授权服务将这个端点暴露出去,以便资源服务可以进行访问
我们在授权服务(spt-ds-uaa-server )中配置了 /oauth/check_token 和 /oauth/token_key 这两个端点

1.2.2 代码操作

在资源 服务配置 RemoteTokenServices ,在 ResouceServerConfifig 中配置:

 1.3 配置安装策略

  1.4 编写资源

 1.5 启动服务测试

1.5 .1 启动服务

1.5 .2 使用授权码方式获取token

1.访问:http://localhost:53020/uaa/oauth/authorize?client_id=c1&response_type=code&scope=all&redirect_uri=http://www.baidu.com

2.登录

 3.授权

4.授权码:fkg8a5

 5.获取token:67a44089-8343-48a5-ba6d-60df43d03cd7

 1.5 .3 携带token访问资源

按照 oauth2.0 协议要求,请求资源需要携带 token ,如下:
token 的参数名称为: Authorization ,值为: Bearer token
访问地址:
请求方式:GET
参数:Authorization       Bearer 67a44089-8343-48a5-ba6d-60df43d03cd7
Bearer+空格 +上面求得的token值

 1.5 .4  验证token

http://localhost:53020/uaa/oauth/check_token

方式:post

参数:  token=67a44089-8343-48a5-ba6d-60df43d03cd7

 1.5 .5  遇到坑

启动类放到了和controller平级的子目录里,造成访问资源不成功!

 后来发现此问题,将controller,config等目录均放到oauth目录下,将启动类OrderApp和这些目录作为平级,成功解决了问题:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/927108
推荐阅读
相关标签
  

闽ICP备14008679号