通过XML配置使用Spring安全性启用CSRF预防

时间:2015-08-06 14:47:41

标签: java spring-mvc spring-security

我在我的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

1 个答案:

答案 0 :(得分:0)

您的主要问题似乎是正确安装和部署Spring安全性。您确定所有弹簧罐都已部署到您的Web容器中吗?

WebApplicationInitializer类通常位于spring-web-4.x.x-RELEASE.jar中。如果你的WEB-INF / lib包含这个jar,你能不能理解?