昨天整理了 maven + jetty的环境,感觉还不错,非常适合自己07年买的本。
使用m2eclipse 插件可以非常方便的添加 依赖和插件,要不然自己手动写是很麻烦的,有点小遗憾,添加依赖时不能多选。
今天终于能用eclipse管理maven的 jetty了,可以run,stop,debug。 可以抛弃myeclipse了。
下午一直在弄security 2.0的例子,郁闷了好半天。
当加上这句话时 会出错 ,不信你们试试
<intercept-url pattern="/*" filters="none" />
加上 <intercept-url pattern="/**" filters="none" />这个反而没错。
我很无语,还遇到一个问题是: no bean name springsecurityfilterchain 这个错误,
解决方案: 首先保证有 <http> 标签, 还有可能是applicationContext文件没有找到,
比如当 web.xml 中为 <param-value>classpath*:applicationContext.xml</param-value>
这样时 就会出现上面的问题。
把 * 号去掉后 回复正常。这个可能是 web服务器的问题,有的帖子上让加*,有的不加也没问题。记下来备用。
这个问题已经解决了,看了security的源码也弄明白了问题是怎样产生的。
上面的配置应该是可以启动服务器,并且不报错的。
问题出在 filter的执行上。
首先security是通过一系列的过滤器来进行认证和权限管理的
filter处理的顺序请参考其他文章,
在FilterChainProxy中 有这样一句 getFilters(url);
这样会根据你配置的 intecepter-url 和filter来进行查询的。
比如 /login.jsp filters="none"
/** access="role_user"
当你 访问login。jsp时 getFilters() 就会返回 null
于是不进行权限控制,任何人都能访问到了。
其他类似所有的 /admin/** access="role_admin"
这种都会被 /**来进行匹配,在最后的filter进行权限验证。
当配置 /* filters=“none” 时 这样所有的/* 就不会进入 VirtrualFilterChain
而用户认证,和生成 登录界面都是在 VirtrualFilterChain 中进行生成的,
这样spring security 就默认的 登录认证,注销等url都不能起作用了