new demo classes for oauth
This commit is contained in:
parent
f1d304ce81
commit
54131bcb2c
|
@ -9,8 +9,10 @@ import org.springframework.security.oauth2.provider.expression.OAuth2MethodSecur
|
|||
@Configuration
|
||||
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
||||
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
|
||||
|
||||
@Override
|
||||
protected MethodSecurityExpressionHandler createExpressionHandler() {
|
||||
return new OAuth2MethodSecurityExpressionHandler();
|
||||
}
|
||||
|
||||
}
|
|
@ -20,11 +20,14 @@ import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore;
|
|||
@PropertySource({ "classpath:persistence.properties" })
|
||||
@EnableResourceServer
|
||||
public class OAuth2ResourceServerConfig extends ResourceServerConfigurerAdapter {
|
||||
|
||||
@Autowired
|
||||
private Environment env;
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void configure(HttpSecurity http) throws Exception {
|
||||
public void configure(final HttpSecurity http) throws Exception {
|
||||
// @formatter:off
|
||||
http
|
||||
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package org.baeldung.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
|
||||
import org.springframework.security.oauth2.provider.token.TokenStore;
|
||||
import org.springframework.security.oauth2.provider.token.store.InMemoryTokenStore;
|
||||
|
||||
//@Configuration
|
||||
//@EnableResourceServer
|
||||
public class OAuth2ResourceServerConfigDemo extends ResourceServerConfigurerAdapter {
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void configure(final HttpSecurity http) throws Exception {
|
||||
// @formatter:off
|
||||
http
|
||||
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
|
||||
.and().authorizeRequests().anyRequest().authenticated();
|
||||
;
|
||||
// @formatter:on
|
||||
}
|
||||
|
||||
@Bean
|
||||
public TokenStore tokenStore() {
|
||||
return new InMemoryTokenStore();
|
||||
}
|
||||
|
||||
}
|
|
@ -38,41 +38,42 @@ public class OAuth2AuthorizationServerConfig extends AuthorizationServerConfigur
|
|||
@Value("classpath:schema.sql")
|
||||
private Resource schemaScript;
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
|
||||
public void configure(final AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
|
||||
oauthServer.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
|
||||
// @formatter:off
|
||||
public void configure(final ClientDetailsServiceConfigurer clients) throws Exception { // @formatter:off
|
||||
clients.jdbc(dataSource())
|
||||
.withClient("sampleClientId")
|
||||
.authorizedGrantTypes("implicit")
|
||||
.scopes("read","write","foo","bar")
|
||||
.autoApprove(false)
|
||||
.accessTokenValiditySeconds(3600)
|
||||
|
||||
.and()
|
||||
.withClient("fooClientIdPassword")
|
||||
.secret("secret")
|
||||
.authorizedGrantTypes("password","authorization_code", "refresh_token")
|
||||
.scopes("foo","read","write")
|
||||
.accessTokenValiditySeconds(3600) // 1hour
|
||||
.refreshTokenValiditySeconds(2592000) // 30days
|
||||
.accessTokenValiditySeconds(3600) // 1 hour
|
||||
.refreshTokenValiditySeconds(2592000) // 30 days
|
||||
|
||||
.and()
|
||||
.withClient("barClientIdPassword")
|
||||
.secret("secret")
|
||||
.authorizedGrantTypes("password","authorization_code", "refresh_token")
|
||||
.scopes("bar","read","write")
|
||||
.accessTokenValiditySeconds(3600) // 1hour
|
||||
.refreshTokenValiditySeconds(2592000) // 30days
|
||||
.accessTokenValiditySeconds(3600) // 1 hour
|
||||
.refreshTokenValiditySeconds(2592000) // 30 days
|
||||
;
|
||||
|
||||
// @formatter:on
|
||||
}
|
||||
} // @formatter:on
|
||||
|
||||
@Override
|
||||
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
|
||||
public void configure(final AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
|
||||
endpoints.tokenStore(tokenStore()).authenticationManager(authenticationManager);
|
||||
}
|
||||
|
||||
|
@ -104,4 +105,5 @@ public class OAuth2AuthorizationServerConfig extends AuthorizationServerConfigur
|
|||
public TokenStore tokenStore() {
|
||||
return new JdbcTokenStore(dataSource());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package org.baeldung.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
|
||||
import org.springframework.security.oauth2.provider.token.TokenStore;
|
||||
import org.springframework.security.oauth2.provider.token.store.InMemoryTokenStore;
|
||||
|
||||
//@Configuration
|
||||
//@EnableAuthorizationServer
|
||||
public class OAuth2AuthorizationServerConfigDemo extends AuthorizationServerConfigurerAdapter {
|
||||
|
||||
@Autowired
|
||||
@Qualifier("authenticationManagerBean")
|
||||
private AuthenticationManager authenticationManager;
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void configure(final AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
|
||||
oauthServer.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(final ClientDetailsServiceConfigurer clients) throws Exception { // @formatter:off
|
||||
clients.inMemory()
|
||||
.withClient("fooClientIdPassword")
|
||||
.secret("secret")
|
||||
.authorizedGrantTypes("password", "authorization_code", "refresh_token")
|
||||
.scopes("foo", "read", "write")
|
||||
.accessTokenValiditySeconds(3600) // 1 hour
|
||||
.refreshTokenValiditySeconds(2592000) // 30 days
|
||||
;
|
||||
} // @formatter:on
|
||||
|
||||
@Override
|
||||
public void configure(final AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
|
||||
endpoints.tokenStore(tokenStore()).authenticationManager(authenticationManager);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public TokenStore tokenStore() {
|
||||
return new InMemoryTokenStore();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue