我是初学者的新手,我正在尝试在我的应用程序中使用spring boot实现spring安全性和会话管理。
如何在不登录应用程序的情况下限制静态文件夹的直接页面访问? 示例:localhost:8080 / view / pages / blank.html
我是否需要添加任何其他配置才能实现会话管理?此外,如何识别特定登录用户是否创建了会话?
我使用的弹簧安全版本是1.5.3.RELEASE。任何人都可以告诉我如何实现春季安全规则和会话管理。在此先感谢您的帮助
以下是我在安全配置类中添加的代码,扩展了WebSecurityConfigurerAdapter
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.csrf().disable()
.authorizeRequests()
.antMatchers("/login")
.permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/login")
.loginProcessingUrl("/homePage")
.defaultSuccessUrl("/homePage")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login")
.permitAll()
.and()
.sessionManagement()
.maximumSessions( 1 )
.expiredUrl( "/sessionExpired" )
.maxSessionsPreventsLogin( true )
.and()
.sessionCreationPolicy( SessionCreationPolicy.IF_REQUIRED );
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.userDetailsService(userDetailsService);
}
}
答案 0 :(得分:0)
很难说出发生了什么,尝试启用日志记录
org.springframework.security: trace
org.springframework.web: trace
并发布您提出请求时打印的内容
答案 1 :(得分:-1)
尝试此代码,此处“ADMIN”是一个角色。根据您希望如何配置角色,它可以在春季“ROLE_ADMIN”。
http.authorizeRequests()
.antMatchers("/", "/login.html", "/logout.html").permitAll()
.antMatchers("/index.html").hasAnyRole("ADMIN") .and().formLogin().loginPage("/login.html").failureUrl("/login.html").defaultSuccessUrl("/index.html")
.usernameParameter("strUserName").passwordParameter("strPassword")
.and().csrf()
.and().exceptionHandling().accessDeniedPage("/404");