spring-oauth-client-sample
spring-boot-security-oauth-client-sample
Application
@SpringBootApplication
public class SpringBootOauthClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootOauthClientApplication.class, args);
}
}
application.yml
# 授权服务地址
maxkey-auth-url: http://sso.maxkey.top/sign
security:
oauth2:
client:
client-id: 1000185112135991296
client-secret: 8Nv7MTcwNjIwMjQyMDU5Mzg5MDU65R
scope: all
user-authorization-uri: ${maxkey-auth-url}/authz/oauth/v20/authorize
access-token-uri: ${maxkey-auth-url}/authz/oauth/v20/token
resource:
# 检查令牌
#token-info-uri: ${maxkey-auth-url}/authz/oauth/v20/token
# 用户信息
user-info-uri: ${maxkey-auth-url}/api/oauth/v20/me
ResourceServerConfiguration
@Configuration
@EnableOAuth2Sso
public class ResourceServerConfiguration extends WebSecurityConfigurerAdapter {
Logger log = LoggerFactory.getLogger(ResourceServerConfiguration.class);
@Value("${maxkey-auth-url}")
String maxkeyAuthUrl;
@Value("${security.oauth2.client.user-authorization-uri}")
String userAuthorizationUri;
@Value("${security.oauth2.client.access-token-uri}")
String accessTokenUri;
@Value("${security.oauth2.resource.user-info-uri}")
String userInfoUri;
@Override
public void configure(HttpSecurity http) throws Exception {
//http.antMatcher("/orgs/**").antMatcher("/userinfo").antMatcher("/login").authorizeRequests().anyRequest().authenticated();
http.authorizeRequests().anyRequest().authenticated().and().csrf().disable();
log.info("UserAuthorizationUri {}" ,userAuthorizationUri);
log.info("AccessTokenUri {}" ,accessTokenUri);
log.info("UserInfoUri {}" ,userInfoUri);
if(accessTokenUri.startsWith("https")) {
HttpsTrusts.beforeConnection();
}
log.debug("ResourceServerConfiguration");
}
}
ResourceController
@RestController
public class ResourceController {
Logger log = LoggerFactory.getLogger(ResourceController.class);
@GetMapping("/")
public String index() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return authentication.getPrincipal().toString();
}
}