diff --git a/gradle.properties b/gradle.properties index 0e62e6cd..dd0cb41c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -springBootVersion=2.0.0.M3 +springBootVersion=2.0.0.M4 version=2.0.0.BUILD-SNAPSHOT diff --git a/samples/boot/findbyusername/spring-session-sample-boot-findbyusername.gradle b/samples/boot/findbyusername/spring-session-sample-boot-findbyusername.gradle index f8aae5ee..d994f177 100644 --- a/samples/boot/findbyusername/spring-session-sample-boot-findbyusername.gradle +++ b/samples/boot/findbyusername/spring-session-sample-boot-findbyusername.gradle @@ -1,7 +1,5 @@ apply plugin: 'io.spring.convention.spring-sample-boot' -ext['spring-data-releasetrain.version'] = 'Kay-RC3' - dependencies { compile project(':spring-session-data-redis') compile "org.springframework.boot:spring-boot-starter-web" diff --git a/samples/boot/findbyusername/src/main/java/sample/config/SecurityConfig.java b/samples/boot/findbyusername/src/main/java/sample/config/SecurityConfig.java index 7b77ed16..a37c5945 100644 --- a/samples/boot/findbyusername/src/main/java/sample/config/SecurityConfig.java +++ b/samples/boot/findbyusername/src/main/java/sample/config/SecurityConfig.java @@ -16,27 +16,46 @@ package sample.config; +import org.springframework.boot.autoconfigure.security.StaticResourceRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; /** + * Spring Security configuration. + * * @author Rob Winch + * @author Vedran Pavic */ @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser( + User.withUsername("user").password("password").roles("USER").build()); + return manager; + } + + // @formatter:off // tag::config[] @Override protected void configure(HttpSecurity http) throws Exception { http + .authorizeRequests() + .requestMatchers(StaticResourceRequest.toCommonLocations()).permitAll() + .anyRequest().authenticated() + .and() .formLogin() .loginPage("/login") - .permitAll() - .and() - .authorizeRequests() - .anyRequest().authenticated(); + .permitAll(); } // end::config[] + // @formatter:on } diff --git a/samples/boot/findbyusername/src/main/resources/application.properties b/samples/boot/findbyusername/src/main/resources/application.properties index b1c5b03e..e69de29b 100644 --- a/samples/boot/findbyusername/src/main/resources/application.properties +++ b/samples/boot/findbyusername/src/main/resources/application.properties @@ -1,2 +0,0 @@ -spring.session.store-type=redis -security.user.password=password diff --git a/samples/boot/jdbc/src/main/java/sample/config/SecurityConfig.java b/samples/boot/jdbc/src/main/java/sample/config/SecurityConfig.java index a8e3788f..660eb92c 100644 --- a/samples/boot/jdbc/src/main/java/sample/config/SecurityConfig.java +++ b/samples/boot/jdbc/src/main/java/sample/config/SecurityConfig.java @@ -16,17 +16,33 @@ package sample.config; +import org.springframework.boot.autoconfigure.security.StaticResourceRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; /** + * Spring Security configuration. + * * @author Rob Winch * @author Vedran Pavic */ @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser( + User.withUsername("user").password("password").roles("USER").build()); + return manager; + } + // @formatter:off @Override public void configure(WebSecurity web) throws Exception { @@ -35,4 +51,19 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { } // @formatter:on + // @formatter:off + // tag::config[] + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .requestMatchers(StaticResourceRequest.toCommonLocations()).permitAll() + .anyRequest().authenticated() + .and() + .formLogin() + .permitAll(); + } + // end::config[] + // @formatter:on + } diff --git a/samples/boot/jdbc/src/main/resources/application.properties b/samples/boot/jdbc/src/main/resources/application.properties index a671d6b1..0db082b8 100644 --- a/samples/boot/jdbc/src/main/resources/application.properties +++ b/samples/boot/jdbc/src/main/resources/application.properties @@ -1,3 +1 @@ -spring.session.store-type=jdbc -security.user.password=password spring.h2.console.enabled=true diff --git a/samples/boot/redis-json/spring-session-sample-boot-redis-json.gradle b/samples/boot/redis-json/spring-session-sample-boot-redis-json.gradle index 2f334568..66e32611 100644 --- a/samples/boot/redis-json/spring-session-sample-boot-redis-json.gradle +++ b/samples/boot/redis-json/spring-session-sample-boot-redis-json.gradle @@ -1,7 +1,5 @@ apply plugin: 'io.spring.convention.spring-sample-boot' -ext['spring-data-releasetrain.version'] = 'Kay-RC3' - dependencies { compile project(':spring-session-data-redis') compile "org.springframework.boot:spring-boot-starter-web" diff --git a/samples/boot/redis-json/src/main/java/sample/config/SecurityConfig.java b/samples/boot/redis-json/src/main/java/sample/config/SecurityConfig.java index f52d6228..3fd5b460 100644 --- a/samples/boot/redis-json/src/main/java/sample/config/SecurityConfig.java +++ b/samples/boot/redis-json/src/main/java/sample/config/SecurityConfig.java @@ -13,28 +13,46 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package sample.config; +import org.springframework.boot.autoconfigure.security.StaticResourceRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; /** - * @author jitendra on 3/3/16. + * Spring Security configuration. + * + * @author jitendra + * @author Vedran Pavic */ @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser( + User.withUsername("user").password("password").roles("USER").build()); + return manager; + } + // @formatter:off @Override protected void configure(HttpSecurity http) throws Exception { http + .authorizeRequests() + .requestMatchers(StaticResourceRequest.toCommonLocations()).permitAll() + .anyRequest().authenticated() + .and() .formLogin() .loginPage("/login") - .permitAll() - .and() - .authorizeRequests() - .anyRequest().authenticated(); + .permitAll(); } // @formatter:on diff --git a/samples/boot/redis-json/src/main/resources/application.properties b/samples/boot/redis-json/src/main/resources/application.properties index b1c5b03e..e69de29b 100644 --- a/samples/boot/redis-json/src/main/resources/application.properties +++ b/samples/boot/redis-json/src/main/resources/application.properties @@ -1,2 +0,0 @@ -spring.session.store-type=redis -security.user.password=password diff --git a/samples/boot/redis/spring-session-sample-boot-redis.gradle b/samples/boot/redis/spring-session-sample-boot-redis.gradle index 3f897c8f..d5845dcf 100644 --- a/samples/boot/redis/spring-session-sample-boot-redis.gradle +++ b/samples/boot/redis/spring-session-sample-boot-redis.gradle @@ -1,7 +1,5 @@ apply plugin: 'io.spring.convention.spring-sample-boot' -ext['spring-data-releasetrain.version'] = 'Kay-RC3' - dependencies { compile project(':spring-session-data-redis') compile "org.springframework.boot:spring-boot-starter-web" diff --git a/samples/boot/redis/src/main/java/sample/config/SecurityConfig.java b/samples/boot/redis/src/main/java/sample/config/SecurityConfig.java index d0627469..9fb8c2ed 100644 --- a/samples/boot/redis/src/main/java/sample/config/SecurityConfig.java +++ b/samples/boot/redis/src/main/java/sample/config/SecurityConfig.java @@ -16,12 +16,45 @@ package sample.config; +import org.springframework.boot.autoconfigure.security.StaticResourceRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; /** + * Spring Security configuration. + * * @author Rob Winch + * @author Vedran Pavic */ @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { + + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser( + User.withUsername("user").password("password").roles("USER").build()); + return manager; + } + + // @formatter:off + // tag::config[] + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .requestMatchers(StaticResourceRequest.toCommonLocations()).permitAll() + .anyRequest().authenticated() + .and() + .formLogin() + .permitAll(); + } + // end::config[] + // @formatter:on + } diff --git a/samples/boot/redis/src/main/resources/application.properties b/samples/boot/redis/src/main/resources/application.properties index b1c5b03e..e69de29b 100644 --- a/samples/boot/redis/src/main/resources/application.properties +++ b/samples/boot/redis/src/main/resources/application.properties @@ -1,2 +0,0 @@ -spring.session.store-type=redis -security.user.password=password diff --git a/samples/boot/websocket/spring-session-sample-boot-websocket.gradle b/samples/boot/websocket/spring-session-sample-boot-websocket.gradle index 164a8eea..6d590685 100644 --- a/samples/boot/websocket/spring-session-sample-boot-websocket.gradle +++ b/samples/boot/websocket/spring-session-sample-boot-websocket.gradle @@ -1,7 +1,5 @@ apply plugin: 'io.spring.convention.spring-sample-boot' -ext['spring-data-releasetrain.version'] = 'Kay-RC3' - dependencies { compile project(':spring-session-data-redis') compile "org.springframework.boot:spring-boot-starter-web" diff --git a/samples/boot/websocket/src/main/java/sample/config/WebSecurityConfig.java b/samples/boot/websocket/src/main/java/sample/config/WebSecurityConfig.java index e8ebd6af..3da9bdec 100644 --- a/samples/boot/websocket/src/main/java/sample/config/WebSecurityConfig.java +++ b/samples/boot/websocket/src/main/java/sample/config/WebSecurityConfig.java @@ -17,25 +17,30 @@ package sample.config; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.security.StaticResourceRequest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter { - // @formatter:off - @Override - public void configure(WebSecurity web) throws Exception { - web - .ignoring().antMatchers("/h2-console/**"); + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser( + User.withUsername("user").password("password").roles("USER").build()); + return manager; } - // @formatter:on // @formatter:off @Autowired @@ -47,4 +52,25 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { } // @formatter:on + // @formatter:off + @Override + public void configure(WebSecurity web) throws Exception { + web + .ignoring().antMatchers("/h2-console/**"); + } + // @formatter:on + + // @formatter:off + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .requestMatchers(StaticResourceRequest.toCommonLocations()).permitAll() + .anyRequest().authenticated() + .and() + .formLogin() + .permitAll(); + } + // @formatter:on + } diff --git a/samples/boot/websocket/src/main/resources/application.properties b/samples/boot/websocket/src/main/resources/application.properties index 3bbd0603..a61c7816 100644 --- a/samples/boot/websocket/src/main/resources/application.properties +++ b/samples/boot/websocket/src/main/resources/application.properties @@ -1,3 +1,2 @@ -spring.session.store-type=redis #server.session.timeout=60 spring.h2.console.enabled=true