@ RobScully прав, вы не должны обращаться с такой авторизацией.Что вы можете сделать, это включить Spring-Security и использовать аннотации Spring Spring для управления этим сценарием.Используйте следующие зависимости и настройте базовую настройку безопасности пружины.
Аннотации, такие как @PreAuthorize()
, могут затем использоваться для проверки привилегий пользователя перед выполнением метода.Вы можете даже добавить эту аннотацию к методам контроллера для проверки перед обработкой каждого запроса, если вы настаиваете.
Вы можете настроить и сервер LDAP или Oauth или даже использовать база данных дляаутентификация (если вы работаете над демо или чем-то подобным).
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring-security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring-security.version}</version>
</dependency>
Используйте класс конфигурации, подобный приведенному ниже, для настройки безопасности:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery(
"select username,password, enabled from users where username=?")
.authoritiesByUsernameQuery(
"select username, role from user_roles where username=?");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')") //To check admin role permission
.and()
.formLogin().loginPage("/login").failureUrl("/login?error") //provide failure url
.usernameParameter("username").passwordParameter("password")
.and()
.logout().logoutSuccessUrl("/login?logout")
.and()
.exceptionHandling().accessDeniedPage("/403")
.and()
.csrf();
}
}
Этот пример проекта в github дает базовую настройкугде вы можете использовать пружинную защиту:
https://github.com/mohchi/spring-security-request-mapping
Справочное использование: https://www.mkyong.com/spring-security/spring-security-form-login-using-database/