精华帖 (0) :: 良好帖 (7) :: 新手帖 (10) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-10
phz50 写道 呵呵,看来大家对我搞的这个东西,骂声一片啊,当然大家很多建议,都说得很好,非常感谢了,不过本人想再次说明做这个东东有很大娱乐成分喔,实际项目上不一定要采用的啊,这个东西可插拔噢!
和他们说 不服?不服你也去写个 |
|
返回顶楼 | |
发表时间:2009-06-10
phz50 写道 呵呵,看来大家对我搞的这个东西,骂声一片啊,当然大家很多建议,都说得很好,非常感谢了,不过本人想再次说明做这个东东有很大娱乐成分喔,实际项目上不一定要采用的啊,这个东西可插拔噢!
没有骂声一片,只是指出了局限性。 但是做个小东西,还是不错的。我也曾经这么用过,呵呵 |
|
返回顶楼 | |
发表时间:2009-06-10
很好 很强大的
|
|
返回顶楼 | |
发表时间:2009-06-10
phz50 写道 cris_jxg 写道 spring针对url的保护不就是针对action的保护吗,有这必要在搞一遍注释?
提的很好,不过,一个Action可以针对不同Url,而且Url是可能经常修改的,一旦修改了,就要修改它保护的配置了,维护起来很麻烦,特别是当Url较多时,而针对Action本身注解,一旦更改了Action或Url不用修改其它,维护起来比较方便和直观。当然也可以一起使用它们,并不冲突的。 目前struts2提供的机制可以一个url对一个action的方法,简单点的话actionName!method.action就够了,没觉得url经常修改,spring提供ant语法的对url的拦截,明显比annotation要灵活。 |
|
返回顶楼 | |
发表时间:2009-06-10
url是不会变的,权限是会变的,应该把权限写入数据库,用spring security的web url进行过滤,这样比较合理,一般项目足够了。
|
|
返回顶楼 | |
发表时间:2009-06-10
看到大家的关注,非常开心,不论说好的,说孬的,都非常感谢,做这个东西,并不是想用来说明Spring security 本身提供的机制不好,而是想提供另一种权限控制思路罢了,当然个人也觉得这种思路,有点不切实际啊,呵呵,一定没有把权限写到数据库好,这是很明显的啊,呵呵,纯属娱乐啦,
|
|
返回顶楼 | |
发表时间:2009-06-10
贴一个ss完整的Demo:
<beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.1.xsd"> <http auto-config="true" lowercase-comparisons="false"> <!--intercept-url pattern="/images/*" filters="none"/> <intercept-url pattern="/styles/*" filters="none"/> <intercept-url pattern="/scripts/*" filters="none"/--> <intercept-url pattern="/admin/*" access="ROLE_ADMIN"/> <intercept-url pattern="/passwordHint.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/> <intercept-url pattern="/signup.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/> <intercept-url pattern="/a4j.res/*.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/> <!-- APF-737, OK to remove line below if you're not using JSF --> <intercept-url pattern="/**/*.html*" access="ROLE_ADMIN,ROLE_USER"/> <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" login-processing-url="/j_security_check"/> <remember-me user-service-ref="userDao" key="e37f4b31-0c45-11dd-bd0b-0800200c9a66"/> </http> <authentication-provider user-service-ref="userDao"> <password-encoder ref="passwordEncoder"/> </authentication-provider> <!-- Override the default password-encoder (SHA) by uncommenting the following and changing the class --> <!-- <bean id="passwordEncoder" class="org.springframework.security.providers.encoding.ShaPasswordEncoder"/> --> <global-method-security> <protect-pointcut expression="execution(* *..service.UserManager.getUsers(..))" access="ROLE_ADMIN"/> <protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN"/> </global-method-security> </beans:beans> 注意: <global-method-security> <protect-pointcut expression="execution(* *..service.UserManager.getUsers(..))" access="ROLE_ADMIN"/> <protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN"/> </global-method-security> 这个是不是你现在"发明"的轮子? |
|
返回顶楼 | |
发表时间:2009-06-10
最后修改:2009-06-10
引用 注意:
<global-method-security> <protect-pointcut expression="execution(* *..service.UserManager.getUsers(..))" access="ROLE_ADMIN"/> <protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN"/> </global-method-security> 这个是不是你现在"发明"的轮子? 谢谢你的提问,可能大家也有同样的疑问喔,其实,这个是对领域或服务方法保护啊,Spring Security是完全能做到的啊,我这个想到达对Action保护,如果你觉得也都一样的话,麻烦你先试一下,原因我在这篇文章中也有说明的啊,谢谢 还有如果大家对Struts2运行机制不是很了解的话,推荐大家看看我的另一篇文章哦自己动手写一个Struts2(升级版),呵呵,很久以前写的,都没人看,打一下广告。。。 |
|
返回顶楼 | |
发表时间:2009-06-10
发现LZ的头像很可爱,难道是个女性朋友不成?
|
|
返回顶楼 | |
发表时间:2009-06-10
treblesoftware 写道 发现LZ的头像很可爱,难道是个女性朋友不成?
呵呵,让你失望了,光棍男,呵呵 |
|
返回顶楼 | |