apache shiroのurls構成


シロiniで構成されているノードurlsは、shiroでwebプロジェクトの比較コアを処理する部分であり、ここで各フィルタを構成するルールである可能性があります.
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 ...