source: src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java@ 2b0a4db

Last change on this file since 2b0a4db was a436340, checked in by Gjoko Kostadinov <gjoko.kostadinov@…>, 17 months ago

Adding customer registration

  • Property mode set to 100644
File size: 3.1 KB
RevLine 
[cf9cdbf]1package edu.gjoko.schedlr.config;
2
[401a211]3import edu.gjoko.schedlr.services.PostgresUserDetailsService;
[cf9cdbf]4import org.springframework.context.annotation.Bean;
5import org.springframework.context.annotation.Configuration;
[401a211]6import org.springframework.security.authentication.AuthenticationManager;
7import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
[cf9cdbf]8import org.springframework.security.config.annotation.web.builders.HttpSecurity;
[401a211]9import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
10import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
[cf9cdbf]11import org.springframework.security.config.core.GrantedAuthorityDefaults;
12import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
[401a211]13import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
[cf9cdbf]14import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
15
16@Configuration
[401a211]17@EnableWebSecurity
18public class AppSecurityConfig extends WebSecurityConfigurerAdapter {
19
20 private final PostgresUserDetailsService userDetailsService;
21
22 private final BCryptPasswordEncoder passwordEncoder;
23
24 private final AuthenticationSuccessHandler authenticationSuccessHandler;
25
26 public AppSecurityConfig(PostgresUserDetailsService userDetailsService, BCryptPasswordEncoder passwordEncoder,
27 AuthenticationSuccessHandler authenticationSuccessHandler) {
28 this.userDetailsService = userDetailsService;
29 this.passwordEncoder = passwordEncoder;
30 this.authenticationSuccessHandler = authenticationSuccessHandler;
31 }
[cf9cdbf]32
33 @Bean
[401a211]34 public AuthenticationManager customAuthenticationManager() throws Exception {
35 return authenticationManager();
36 }
37
38 @Override
39 protected void configure(AuthenticationManagerBuilder auth) throws Exception {
40 auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
41 }
42
43 @Override
44 protected void configure(HttpSecurity http) throws Exception {
45 http.csrf()
[cf9cdbf]46 .disable()
[a436340]47 .httpBasic()
48 .authenticationEntryPoint(new AppAuthenticationEntryPoint())
49 .and()
50 .addFilterBefore(new AppFilter(), BasicAuthenticationFilter.class)
51 .formLogin()
52 .loginPage("/login")
53 .loginProcessingUrl("/login")
54 .successHandler(authenticationSuccessHandler)
55 .defaultSuccessUrl("/homepage")
56 .and()
[401a211]57 .authorizeRequests()
[763289e]58 .antMatchers("/login").permitAll()
[204464d]59 .antMatchers("/register_customer").permitAll()
60 .antMatchers("/register_business").permitAll()
[a436340]61 .antMatchers("/api/nomenclatures/*").permitAll()
[763289e]62 .antMatchers("/homepage").permitAll()
[401a211]63 .antMatchers("/css/**").permitAll()
[044bd76]64 .antMatchers("/js/**").permitAll()
[401a211]65 .antMatchers("/anonymous*").anonymous()
66 .anyRequest()
[a436340]67 .fullyAuthenticated();
[cf9cdbf]68 }
69}
Note: See TracBrowser for help on using the repository browser.