我在我的Web应用程序中使用Spring 4.1.6和spring-security 4.0.1。 我已经通过很多帖子在我的应用程序中使用spring security来启用csrf。我仍然没有找到解决方案。我没有在我的jsp中获取csrf令牌。它们仍然是空的。我的普通Web MVC应用程序运行正常,但是在安全性设置方面存在问题。
我为启用安全性所做的以下更改是
添加了以下jar: 弹簧安全核心4.0.1 弹簧安全的web-4.0.1 弹簧安全标签库-4.0.1 弹簧安全-CONFIG-4.0.1
添加了SecurityConfig类
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private Logger logger = Logger.getLogger(SecurityConfig.class);
@Override
protected void configure(HttpSecurity http) throws Exception {
logger.debug("Inside configure method of SecurityConfig class....");
http
.authorizeRequests()
.anyRequest().permitAll();
}
}
在web.xml中添加了此过滤器
springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
请帮忙。
我遇到了像
这样的例外情况SEVERE:WebModule [/ AG_INDREVIEW] PWC1270:异常启动过滤器springSecurityFilterChain java.lang.InstantiationException
警告:WEB9052:无法加载类org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer,原因:java.lang.NoClassDefFoundError:org / springframework / web / WebApplicationInitializer
答案 0 :(得分:0)
您的主要问题似乎是正确安装和部署Spring安全性。您确定所有弹簧罐都已部署到您的Web容器中吗?
WebApplicationInitializer类通常位于spring-web-4.x.x-RELEASE.jar中。如果你的WEB-INF / lib包含这个jar,你能不能理解?