apache shiroのurls構成
シロiniで構成されているノードurlsは、shiroでwebプロジェクトの比較コアを処理する部分であり、ここで各フィルタを構成するルールである可能性があります.
Webで使用する必要がある場合はxmlでの構成
?
動的に設定できます.iniのパスは、プロファイルに書き込むパスと、プログラムを使用してロードするパスです.
Webでxmlでshiroを動的に構成できます.iniの位置
例は次のとおりです.
?
もう1つの方法は、アプリケーションを介してロードすることです.
例のspring-hibernateに従って
コンフィギュレーション
?
filterChainDefinitionsプロパティを設定すると、設定の値を対応するINIクラスに動的にロードできます.コンフィギュレーションフィルタをロードする効果も実現できます.
shiro.iniの[urls]ノード
?
ノードの下の構成情報は次の形式です.
URL_Ant_Path_Expression = Path_Specific_Filter_Chain
例は次のとおりです.
?
対応するurlが実行するフィルタチェーンを指定します.
次のようなフィルタリングが発生した場合
?
次のデフォルトは、/account/signup/indexにアクセスすることはできません.htmlの場合、上のフィルタのみが実行され、下のフィルタは実行されません.
shiroが提供するフィルタが要求を満たすことができない場合は、カスタムフィルタを使用して、以下のルールを設定できます.
?
shiroでデフォルトのフィルタ
フィルタ名
フィルタクラス
説明
anon
org.apache.shiro.web.filter.authc.AnonymousFilter
匿名フィルタ
authc
org.apache.shiro.web.filter.authc.FormAuthenticationFilter
操作を続行する場合は、対応するフォームの検証が必要です.そうしないと通過できません.
authcBasic
org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
基本http検証フィルタ、パスしない場合は、ジャンプハウスログインページ
logout
org.apache.shiro.web.filter.authc.LogoutFilter
ログオン終了フィルタ
noSessionCreation
org.apache.shiro.web.filter.session.NoSessionCreationFilter
セッション作成フィルタがありません
perms
org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
アクセス権フィルタ
port
org.apache.shiro.web.filter.authz.PortFilter
ポートフィルタ、指定されたポートかどうかを設定できます.ログインページにジャンプしない場合は
rest
org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
httpメソッドフィルタは、postがアクセスできないなどの指定ができます
roles
org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
ロールフィルタ:現在のユーザーがロールを指定するかどうかを判断します.
ssl
org.apache.shiro.web.filter.authz.SslFilter
リクエストはsslを通過する必要があります.ログインページにジャンプしない場合は
user
org.apache.shiro.web.filter.authc.UserFilter
私の機能を覚えているなど、既知のユーザーにアクセスする場合は、このフィルタを実行します.
もちろん、フィルタの使用を設定したり、無効にしたりすることもできます.
対応する設定は次のとおりです.
?
基本フォームのログイン
?
login.jsp中
?
データベースに接続しない場合
?
Webで使用する必要がある場合はxmlでの構成
?
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-
class
>org.apache.shiro.web.servlet.ShiroFilter</filter-
class
>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
動的に設定できます.iniのパスは、プロファイルに書き込むパスと、プログラムを使用してロードするパスです.
Webでxmlでshiroを動的に構成できます.iniの位置
例は次のとおりです.
?
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-
class
>org.apache.shiro.web.servlet.IniShiroFilter</filter-
class
>
<init-param>
<param-name>configPath</param-name>
<param-value>/WEB-INF/anotherFile.ini</param-value>
</init-param>
</filter>
もう1つの方法は、アプリケーションを介してロードすることです.
例のspring-hibernateに従って
コンフィギュレーション
?
<bean id=
"shiroFilter"
class
=
"org.apache.shiro.spring.web.ShiroFilterFactoryBean"
>
filterChainDefinitionsプロパティを設定すると、設定の値を対応するINIクラスに動的にロードできます.コンフィギュレーションフィルタをロードする効果も実現できます.
shiro.iniの[urls]ノード
?
# [main], [users] and [roles] above here
...
[urls]
...
ノードの下の構成情報は次の形式です.
URL_Ant_Path_Expression = Path_Specific_Filter_Chain
例は次のとおりです.
?
...
[urls]
/index.html = anon
/user/create = anon
/user/** = authc
/admin/** = authc, roles[administrator]
/rest/** = authc, rest
/remoting/rpc/** = authc, perms[
"remote:invoke"
]
対応するurlが実行するフィルタチェーンを指定します.
次のようなフィルタリングが発生した場合
?
/account/** = ssl, authc
/account/signup = anon
次のデフォルトは、/account/signup/indexにアクセスすることはできません.htmlの場合、上のフィルタのみが実行され、下のフィルタは実行されません.
shiroが提供するフィルタが要求を満たすことができない場合は、カスタムフィルタを使用して、以下のルールを設定できます.
?
[main]
...
myFilter = com.company.web.some.FilterImplementation
myFilter.property1 = value1
...
[urls]
...
/some/path/** = myFilter
shiroでデフォルトのフィルタ
フィルタ名
フィルタクラス
説明
anon
org.apache.shiro.web.filter.authc.AnonymousFilter
匿名フィルタ
authc
org.apache.shiro.web.filter.authc.FormAuthenticationFilter
操作を続行する場合は、対応するフォームの検証が必要です.そうしないと通過できません.
authcBasic
org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
基本http検証フィルタ、パスしない場合は、ジャンプハウスログインページ
logout
org.apache.shiro.web.filter.authc.LogoutFilter
ログオン終了フィルタ
noSessionCreation
org.apache.shiro.web.filter.session.NoSessionCreationFilter
セッション作成フィルタがありません
perms
org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
アクセス権フィルタ
port
org.apache.shiro.web.filter.authz.PortFilter
ポートフィルタ、指定されたポートかどうかを設定できます.ログインページにジャンプしない場合は
rest
org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
httpメソッドフィルタは、postがアクセスできないなどの指定ができます
roles
org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
ロールフィルタ:現在のユーザーがロールを指定するかどうかを判断します.
ssl
org.apache.shiro.web.filter.authz.SslFilter
リクエストはsslを通過する必要があります.ログインページにジャンプしない場合は
user
org.apache.shiro.web.filter.authc.UserFilter
私の機能を覚えているなど、既知のユーザーにアクセスする場合は、このフィルタを実行します.
もちろん、フィルタの使用を設定したり、無効にしたりすることもできます.
対応する設定は次のとおりです.
?
[main]
...
# configure Shiro
's default '
ssl' filter to be disabled
while
testing:
ssl.enabled =
false
[urls]
...
/some/path = ssl, authc
/another/path = ssl, roles[admin]
...
基本フォームのログイン
?
[main]
authc.loginUrl = /login.jsp
[urls]
# your login form page here:
login.jsp = authc
login.jsp中
?
<form ...>
Username: <input type=
"text"
name=
"username"
/> <br/>
Password: <input type=
"password"
name=
"password"
/>
...
<input type=
"checkbox"
name=
"rememberMe"
value=
"true"
/>Remember Me?
...
</form>
データベースに接続しない場合
?
[main]
...
authc.loginUrl = /whatever.jsp
authc.usernameParam = somethingOtherThanUsername
authc.passwordParam = somethingOtherThanPassword
authc.rememberMeParam = somethingOtherThanRememberMe
...