зеркало из
https://github.com/iharh/notes.git
synced 2025-10-29 20:56:06 +02:00
78 строки
4.3 KiB
Plaintext
78 строки
4.3 KiB
Plaintext
https://docs.spring.io/spring-authorization-server/docs/current/reference/html/index.html
|
|
https://docs.spring.io/spring-authorization-server/docs/current/reference/html/getting-started.html
|
|
|
|
https://github.com/Baeldung/spring-security-oauth/tree/master/oauth-resource-server
|
|
|
|
2023
|
|
|
|
2021
|
|
https://www.baeldung.com/spring-security-oauth-resource-server
|
|
2018
|
|
http://www.zakariaamine.com/2018-03-01/using-oauth2-in-spring-scopes
|
|
http://www.zakariaamine.com/2018-01-27/using-oauth2-in-spring
|
|
https://github.com/zak905/oauth2-example
|
|
|
|
|
|
https://github.com/spring-projects/spring-security/blob/master/docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-resourceserver.adoc
|
|
https://github.com/spring-projects/spring-security/tree/master/samples/boot/oauth2resourceserver-opaque
|
|
|
|
https://github.com/spring-projects/spring-security/blob/master/samples/boot/oauth2resourceserver-opaque/src/main/java/sample/OAuth2ResourceServerSecurityConfiguration.java
|
|
https://github.com/spring-projects/spring-security/blob/master/samples/boot/oauth2resourceserver-opaque/src/main/resources/application.yml
|
|
|
|
OpaqueTokenIntrospector
|
|
https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/server/resource/introspection/OpaqueTokenIntrospector.html
|
|
https://github.com/spring-projects/spring-security/blob/master/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/introspection/OpaqueTokenIntrospector.java
|
|
|
|
https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/core/OAuth2AuthenticatedPrincipal.html
|
|
https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/core/GrantedAuthority.html
|
|
|
|
|
|
org.springframework.security.web.DefaultSecurityFilterChain : Creating filter chain: any request, [
|
|
...
|
|
org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter@d1f74b8,
|
|
...
|
|
|
|
BearerTokenAuthenticationFilter
|
|
https://github.com/spring-projects/spring-security/blob/master/oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/BearerTokenAuthenticationFilter.java
|
|
|
|
@Configuration
|
|
@EnableWebSecurity
|
|
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|
static class MyOpaqueTokenIntrospector implements OpaqueTokenIntrospector {
|
|
public OAuth2AuthenticatedPrincipal introspect(String token) {
|
|
Collection<GrantedAuthority> grantedAuthorities = List.of("SCOPE_some.api[group='stuff']").stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList());
|
|
return new DefaultOAuth2AuthenticatedPrincipal(Map.of("active", true), grantedAuthorities);
|
|
}
|
|
}
|
|
private MyOpaqueTokenIntrospector mybIntrospector() {
|
|
return new MyOpaqueTokenIntrospector();
|
|
}
|
|
@Override
|
|
protected void configure(HttpSecurity http) throws Exception {
|
|
//@formatter:off
|
|
http
|
|
.cors().disable()
|
|
.csrf().disable()
|
|
.sessionManagement().disable()
|
|
.authorizeRequests(authorizeRequests ->
|
|
authorizeRequests
|
|
// TODO: fix group names
|
|
.antMatchers(HttpMethod.GET, "/v1/**").hasAuthority("SCOPE_some.api[group=''stuff'']")
|
|
.antMatchers(HttpMethod.POST, "/v1/**").hasAuthority("SCOPE_some.api[group=''stuff'']")
|
|
.anyRequest().permitAll()
|
|
)
|
|
.oauth2ResourceServer(oauth2ResourceServer ->
|
|
oauth2ResourceServer
|
|
.opaqueToken(opaqueToken -> opaqueToken
|
|
.introspector(myIntrospector())
|
|
)
|
|
);
|
|
//@formatter:on
|
|
}
|
|
}
|
|
|
|
to-find-replacement-for:
|
|
https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/token/RemoteTokenServices.java
|
|
https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/token/DefaultAccessTokenConverter.java
|
|
extractAuthentication
|