/
ZufarFaiz
/
SberProject
Обзор
Документация
Войти
/
ZufarFaiz
/
SberProject
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/main/java/com/example/JobExchange_app/configuration/WebSecurityConfiguration.java
71 строка
3 KB
Семейный
Изменил маршруты в filterchain
01 июн 2025, 23:28
01 июн 2025, 23:28
94b13bd
Код
Авторство
О чём код?
package com.example.JobExchange_app.configuration; import com.example.JobExchange_app.handler.RoleAuthSuccessHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; @Configuration @EnableWebSecurity public class WebSecurityConfiguration { @Autowired private UserDetailsService userDetailsService; @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception { return config.getAuthenticationManager(); } private final AuthenticationSuccessHandler successHandler; public WebSecurityConfiguration(RoleAuthSuccessHandler successHandler) { this.successHandler = successHandler; } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .authorizeHttpRequests(auth -> auth .requestMatchers("/auth/register").permitAll() .requestMatchers("/admin/**").hasRole("ADMIN") .requestMatchers("/applicant/**", "/responses/response", "/jobs/vacancies").hasRole("APPLICANT") .requestMatchers("/recruiter/**", "/responses/applicants/{id}", "/jobs/new", "/jobs/job/{id}").hasRole("RECRUITER") .anyRequest().authenticated() ) .formLogin(form -> form .loginPage("/auth/login") .loginProcessingUrl("/auth/login") .successHandler(successHandler) .failureUrl("/auth/login?error") .permitAll() ) .logout(logout -> logout .logoutUrl("/logout") .logoutSuccessUrl("/auth/login?logout") .invalidateHttpSession(true) .deleteCookies("JSESSIONID") .permitAll() ) .build(); } }