刚接触spring-security,按照文档上的做最小配置,基本配置如下:
web.xml
<!-- 权限 Spring Security的权限过滤-->
<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>
spring-security.xml配置
<debug />
<global-method-security pre-post-annotations="enabled" />
<http pattern="/common/**" security="none" />
<http pattern="/resources/**" security="none" />
<http pattern="/home/login" security="none" />
<http pattern="login.html" security="none" />
我的登录页面是由spring Controller跳转到web-inf文件夹下的login.html登录页面
我开始怀疑是配置问题,后来试试访问 http://xxxx:8099/resource下的资源文件,是能正确过滤掉不拦截,
但是在使用登录页面请求的url时 http://xxxx:8099/home/login 一直是404
spring mvc Controller代码是
@Controller
@RequestMapping("/home")
public class WelcomeController {
@RequestMapping("/login")
public String index(){
return "login.html";
}
}
请问下问题出在什么地方?
是不是@Controller的@RequestMapping可以那样写吗?去掉第一个@RequestMapping,你试一下第二个的"/home/login"
@RequestMapping注解可以被应用到类级别或者方法级别上。第一种映射策略是将一个特定的URL模式映射到控制器类,然后将特定的HTTP方法映射到每个处理程序方法。
第二种策略是直接将URL模式映射到每个处理程序方法中去,无需为控制器类定义映射。