Я использую весеннюю загрузку-стартерную версию 1.5.7.RELEASE.
Мой подход не является полным решением, но он может вам помочь.
Вы можете отправить пользователю/пароль и получить файл cookie SESSION, который затем можно будет использовать дальше.
Оговорка:
- Вам все еще нужно установить время истечения куки/маркера.
- Вам необходимо автоматизировать процесс входа в систему - напрямую отправить учетные данные пользователя (этот подход обслуживает login.html ...).
условии, что вы уже весна загрузки безопасности включен в вашем ПОМ.
добавить также следующее для включения управления сеансом и Redis как HTTP сессии магазин (в вашем ПОМ):
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Добавить класс, extends WebSecurityConfigurerAdapter
. Вы, возможно, уже есть что:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true) // enable method-level authorization (@PreAuthorize("expression"))
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("user").roles("USER").and()
.withUser("admin").password("admin").roles("USER", "ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().hasAnyRole("USER", "ADMIN").anyRequest().authenticated()
.and()
.httpBasic().disable();
http
.csrf().disable()
.and()
.formLogin()
.usernameParameter("j_username")
.passwordParameter("j_password")
.loginPage("/login.html")
.loginProcessingUrl("/j_spring_security_check")
.defaultSuccessUrl("/#")
.failureUrl("/loginNotSuccessfull.html")
.permitAll();
}
Также у меня есть REDIS сервер как HTTP сессии магазина (я только начал грузчиком контейнер, используя redis:4-alpine
изображение и --protected-mode no
и --net=host
.) Со следующими свойствами в применения. свойства:
spring.session.store-type=redis
spring.redis.host=localhost
spring.redis.port=6379
чтобы сделать его работу, я также включал в себя класс HTTPSessionConfig для включения redis HTTP sessions:
@EnableRedisHttpSession
public class HttpSessionConfig {
}
Spring ботинка обрабатывает все необходимые вещи - хранение пользователю в Redis, проверяя SESSION и т.д.
Я надеюсь, что это все работает, как ожидалось.
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать.
Update:
This link shows, как использовать встроенный сервер Redis.