2012-05-11 21 views

答えて

1

は、あなたのアプリケーションとの統合、または

stackoverflowのタグは、サーブレット・フィルターの優れた概要を持っている独自のサーブレットフィルタを書くこと春-セキュリティのようなプロジェクトを使用することができます。ほとんどのサーブレット互換Webフレームワークでは、フィルタを統合してリクエストを傍受し、無効または許可されていないリクエストを所属する場所にリダイレクトすることができます。

+0

ありがとう@Alexander。それははるかに良く見えます。 – pd40

0

Apache Shiroフィルタを使用して、特定のURLの直接アクセスを制御することをお勧めします。

Apache Shiroの設定iniファイルを見てください。ここには、表示されているURLアクセスの制御があります。以前のURL(複数可)あなたは、あなたが演奏でなければなりません/faces/login.xhtmlのための任意のアクセスは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] 

特定の役割のために。

stackoverflowでShiroタグを確認するか、Apache Shiroサイトを参照してください。

私はあなたを助けてくれることを願っています。おかげさまで

関連する問題