如何控制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