Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package pl.ething.config; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; 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.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; /** * * @author prographer */ @Configuration @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired DataSource dataSource; @Autowired public void configureAuth(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { //authenticationManagerBuilder.inMemoryAuthentication() //.withUser("admin").password("admin").roles("ADMIN"); authenticationManagerBuilder.jdbcAuthentication().dataSource(dataSource).passwordEncoder(passwordEncoder()) .usersByUsernameQuery( "select login,password, true from ething_user where login=? and activation='1'") .authoritiesByUsernameQuery("select login, role from ething_user where login=?"); } @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/public/**"); } @Override protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.authorizeRequests() .antMatchers("/", "/test", "/error", "/home", "/activation/**", "/thing/**", "/register", "/public/**", "/registerUser", "/rememberPassword", "/isLogedUser", "/profil/**", "/rememberme") .permitAll().anyRequest().authenticated().and().csrf().disable().formLogin().loginPage("/login") .defaultSuccessUrl("/", true).permitAll().and().logout().logoutUrl("/logout").permitAll(); } @Bean public PasswordEncoder passwordEncoder() { PasswordEncoder encoder = new BCryptPasswordEncoder(); return encoder; } }