/*** Created by macro on 2019/9/30.*/@RestController@RequestMapping("/user")publicclassUserController{@GetMapping("/getCurrentUser")public Object getCurrentUser(Authentication authentication){return authentication;}}
/*** 認證服務器配置* Created by macro on 2019/9/30.*/@Configuration@EnableAuthorizationServerpublicclassAuthorizationServerConfigextendsAuthorizationServerConfigurerAdapter{//以上省略一堆代碼...@Overridepublicvoidconfigure(ClientDetailsServiceConfigurer clients)throws Exception {clients.inMemory().withClient("admin").secret(passwordEncoder.encode("admin123456")).accessTokenValiditySeconds(3600).refreshTokenValiditySeconds(864000)// .redirectUris("http://www.baidu.com").redirectUris("http://localhost:9501/login")//單點登錄時配置.scopes("all").authorizedGrantTypes("authorization_code","password","refresh_token");}@Overridepublicvoidconfigure(AuthorizationServerSecurityConfigurer security){security.tokenKeyAccess("isAuthenticated()");// 獲取密鑰需要身份認證,使用單點登錄時必須配置}}
/*** 認證服務器配置* Created by macro on 2019/9/30.*/@Configuration@EnableAuthorizationServerpublicclassAuthorizationServerConfigextendsAuthorizationServerConfigurerAdapter{//以上省略一堆代碼...@Overridepublicvoidconfigure(ClientDetailsServiceConfigurer clients)throws Exception {clients.inMemory().withClient("admin").secret(passwordEncoder.encode("admin123456")).accessTokenValiditySeconds(3600).refreshTokenValiditySeconds(864000)// .redirectUris("http://www.baidu.com").redirectUris("http://localhost:9501/login")//單點登錄時配置.autoApprove(true)//自動授權配置.scopes("all").authorizedGrantTypes("authorization_code","password","refresh_token");}}
/*** 在接口上配置權限時使用* Created by macro on 2019/10/11.*/@Configuration@EnableGlobalMethodSecurity(prePostEnabled =true)@Order(101)publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{}
在UserController中添加需要admin權限的接口:
/*** Created by macro on 2019/9/30.*/@RestController@RequestMapping("/user")publicclassUserController{@PreAuthorize("hasAuthority('admin')")@GetMapping("/auth/admin")public Object adminAuth(){return"Has admin auth!";}}