如何控制jsf 2.0,struts 2和spring 3中的直接url访问?我的意思是不登录用户类型的网址,并始终显示在家或登录页面。如何控制直接url访问?
0
A
回答
1
您可以使用一个项目像弹簧安全与您的应用程序集成,或者自己写servlet的过滤器
的计算器servlet-filter标签有Servlet过滤器的一个很好的概述。对于大多数与servlet兼容的Web框架,您可以集成过滤器来拦截请求并将无效或未经授权的请求重定向到它们所属的位置。
0
我建议你使用Apache Shiro过滤器来控制某个URL的直接访问。
查看Apache Shiro配置ini文件显示的URL访问控制位置。
[main]
logout = org.apache.shiro.web.filter.authc.LogoutFilter
roles = org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
authc.loginUrl=/faces/login.xhtml
authc.successUrl=/faces/index.xhtml
roles.unauthorizedUrl = /faces/unauthorized.xhtml
logout.redirectUrl = /faces/login.xhtml?status=loggedOut
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.permissionsLookupEnabled = true
jdbcRealm.authenticationQuery = SELECT PASSWORD FROM USERS WHERE USERS.USERNAME = ?
jdbcRealm.userRolesQuery = SELECT ROLE_NAME FROM ROLES, USER_ROLE, USERS WHERE ROLES.ROLE_ID = USER_ROLE.ROLE_ID AND USERS.USR_ID = USER_ROLE.USR_ID AND USERS.USERNAME = ?
jdbcRealm.permissionsQuery = SELECT PERMISSIONS.PERM_NAME FROM ROLES, PERMISSIONS_ROLE, PERMISSIONS WHERE ROLES.ROLE_ID = PERMISSIONS_ROLE.ROLE_ID AND PERMISSIONS.PERM_ID = PERMISSIONS_ROLE.PERM_ID AND ROLES.ROLE_NAME = ?
ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
ds.user = maqraa
ds.password = maqraa
ds.databaseName = maqraa
ds.serverName = localhost
ds.portNumber = 3306
jdbcRealm.dataSource = $ds
securityManager.realms = $jdbcRealm
[urls]
/faces/login.xhtml = authc
/faces/admin/** = authc, roles[admin]
/faces/teacher/** = authc, roles[teacher]
/faces/reports/** = authc, roles[admin]
/faces/officer/** = authc, roles[officer]
/faces/manager/** = authc, roles[manager]
/faces/roles/** = authc, roles[admin]
看看前面的网址,你会发现,对于/faces/login.xhtml任何访问都必须通过身份验证的用户,除了进行访问某些网址,你必须是一个公平为特定的角色。
查看stackoverflow上的Shiro标签或查看Apache Shiro站点。
我希望能帮到你。 谢谢。
相关问题
- 1. 直接URL访问
- 2. PHP的限制直接URL访问
- 3. 如何防止直接访问URL?
- 4. 阻止直接URL访问控制器返回partialview?
- 5. 阻止直接url访问
- 6. 如何保护控制器免受直接访问?
- 7. Spring Security - 如何直接调用访问控制方法?
- 8. mean.io cronjob |如何直接访问服务器端控制器?
- 9. 我如何阻止直接访问codeigniter中的控制器?
- 10. Codeigniter - 通过URL调用限制对控制器功能的直接访问
- 11. 如何访问连接url
- 12. JSP过滤非法url直接访问
- 13. 通过url直接访问区域
- 14. 避免在AngularJS中直接访问URL
- 15. 拒绝直接URL访问文件
- 16. 角2路由器直接访问URL
- 17. 阻止codeigniter中的直接url访问
- 18. 防止直接访问URL的文件?
- 19. 不允许直接url访问图像
- 20. 直接从URL访问方法
- 21. 访问报告的直接URL - JasperServer
- 22. file_get_content($ url)和直接访问的区别
- 23. 直接从Codeigniter中的URL中阻止访问控制器方法
- 24. 通过访问控制功能访问url的具体访问
- 25. 如何访问控制器
- 26. 如何拒绝访问直接访问我的部分视图的URL?
- 27. 如何防止对操作类的直接URL访问
- 28. 如何防止从jsp页面的url直接访问页面
- 29. 如何通过URL直接访问文件来防止下载?
- 30. 如何知道用户通过QR扫描直接访问URL?
Thanks @Alexander。这看起来好多了。 – pd40