我正在尝试阻止访问我网站中的网页,但下面的安全配置并不限制对私人网页的访问。
我的安全配置:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private UserService detailsService;
@Override
protected void configure(HttpSecurity http)
throws Exception {
http.authorizeRequests().antMatchers("/passwordrequest/**", "/initSystem").permitAll().anyRequest()
.authenticated().and().formLogin().loginPage("/login").usernameParameter("email").permitAll().and()
.logout().permitAll().and().csrf().disable();
}
@Override
protected void configure(AuthenticationManagerBuilder auth)
throws Exception {
auth.userDetailsService(detailsService);
}
}
我有一个/login
控制器,可以将用户放到模型上,以便我可以评估他们的信息。我已根据需要实施了UserDetails
和UserDetailsService
。
请告知可能出现的问题。 (如果您希望我添加一些特定代码,请告诉我们)
答案 0 :(得分:0)
检查您的web.xml中是否配置了spring安全过滤器,以拦截您的所有安全请求。
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
答案 1 :(得分:-1)
您的配置中的私人网页在哪里?你需要有这个配置。 例如:
http.authorizeRequests()
.antMatchers("/adminpage/**").access("hasRole('ROLE_ADMIN')")
.antMatchers("/privatepage/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_USER')")
.and().formLogin();