當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringSecurity案例之把资源交给OAuth2的资源服务管理
生活随笔
收集整理的這篇文章主要介紹了
SpringSecurity案例之把资源交给OAuth2的资源服务管理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
將訪問資源作為OAuth2的資源來管理
復(fù)制昨天項目中用戶和角色對象,即便是用OAuth2管理資源,也一樣需要認證,這兩個對象還是需要的。
SysRole.java
public class SysRole implements GrantedAuthority {private Integer id;private String roleName;private String roleDesc; }SysUser.java
public class SysUser implements UserDetails {private Integer id;private String username;private String password;private Integer status;private List<SysRole> roles; }編寫資源管理配置類
@Configuration @EnableResourceServer public class OauthSourceConfig extends ResourceServerConfigurerAdapter {// 只要配置了數(shù)據(jù)庫的配置,就會將DataSource放入到IOC容器中@Autowiredprivate DataSource dataSource;/*** 指定token的持久化策略* InMemoryTokenStore表示將token存儲在內(nèi)存* Redis表示將token存儲在redis中* JdbcTokenStore存儲在數(shù)據(jù)庫中* @return*/@Beanpublic TokenStore jdbcTokenStore(){return new JdbcTokenStore(dataSource);}/*** 指定當前資源的id和存儲方案* @param resources* @throws Exception*/@Overridepublic void configure(ResourceServerSecurityConfigurer resources) throws Exception {// 也就是當前資源服務(wù)的idresources.resourceId("product_api").tokenStore(jdbcTokenStore());}@Overridepublic void configure(HttpSecurity http) throws Exception{http.authorizeRequests()//指定不同請求方式訪問資源所需要的權(quán)限,一般查詢是read,其余是write。.antMatchers(HttpMethod.GET, "/**").access("#oauth2.hasScope('read')").antMatchers(HttpMethod.POST, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.PATCH, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.PUT, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.DELETE, "/**").access("#oauth2.hasScope('write')").and().headers().addHeaderWriter((request, response) -> {//允許跨域response.addHeader("Access-Control-Allow-Origin", "*");//如果是跨域的預(yù)檢請求,則原封不動向下傳達請求頭信息if (request.getMethod().equals("OPTIONS")) {response.setHeader("Access-Control-Allow-Methods", request.getHeader("Access-Control-Request-Method"));response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));}});} }總結(jié)
以上是生活随笔為你收集整理的SpringSecurity案例之把资源交给OAuth2的资源服务管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringSecurity 案例之创建
- 下一篇: SpringSecurity案例之认证服