国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Shiro權(quán)限驗(yàn)證代碼記錄,正確找到shiro框架在什么地方做了權(quán)限識(shí)別

2019-11-14 14:50:19
字體:
供稿:網(wǎng)友

權(quán)限驗(yàn)證方式的驗(yàn)證代碼:

org.apache.shiro.web.servlet.AdviceFilter這個(gè)類是所有shiro框架提供的默認(rèn)權(quán)限驗(yàn)證實(shí)例類的父類

驗(yàn)證代碼:

public void doFilterInternal(ServletRequest request, ServletResponse response, FilterChain chain)
  throws ServletException, IOException {

  Exception exception = null;

  try {

    //下面的這一段代碼就是在進(jìn)行權(quán)限驗(yàn)證

    boolean continueChain = PReHandle(request, response);
    if (log.isTraceEnabled()) {
      log.trace("Invoked preHandle method. Continuing chain?: [" + continueChain + "]");
    }

    //驗(yàn)證通過那么就跳轉(zhuǎn)到下一個(gè)過濾器

    if (continueChain) {
      executeChain(request, response, chain);
    }

    postHandle(request, response);
    if (log.isTraceEnabled()) {
      log.trace("Successfully invoked postHandle method");
    }

  } catch (Exception e) {
    exception = e;
  } finally {
    cleanup(request, response, exception);
  }
}

 

默認(rèn)的權(quán)限驗(yàn)證類別有:

anon -- org.apache.shiro.web.filter.authc.AnonymousFilterauthc -- org.apache.shiro.web.filter.authc.FormAuthenticationFilterauthcBasic -- org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilterperms -- org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilterport -- org.apache.shiro.web.filter.authz.PortFilterrest -- org.apache.shiro.web.filter.authz.HttpMethodPermissionFilterroles -- org.apache.shiro.web.filter.authz.RolesAuthorizationFilterssl -- org.apache.shiro.web.filter.authz.SslFilteruser -- org.apache.shiro.web.filter.authc.UserFilterlogout -- org.apache.shiro.web.filter.authc.LogoutFilter

anon:例子/admins/**=anon 沒有參數(shù),表示可以匿名使用。 authc:例如/admins/user/**=authc表示需要認(rèn)證(登錄)才能使用,沒有參數(shù) roles:例子/admins/user/**=roles[admin],參數(shù)可以寫多個(gè),多個(gè)時(shí)必須加上引號(hào),并且參數(shù)之間用逗號(hào)分割,當(dāng)有多個(gè)參數(shù)時(shí),例如admins/user/**=roles["admin,guest"],每個(gè)參數(shù)通過才算通過,相當(dāng)于hasAllRoles()方法。 perms:例子/admins/user/**=perms[user:add:*],參數(shù)可以寫多個(gè),多個(gè)時(shí)必須加上引號(hào),并且參數(shù)之間用逗號(hào)分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],當(dāng)有多個(gè)參數(shù)時(shí)必須每個(gè)參數(shù)都通過才通過,想當(dāng)于isPermitedAll()方法。 rest:例子/admins/user/**=rest[user],根據(jù)請(qǐng)求的方法,相當(dāng)于/admins/user/**=perms[user:method] ,其中method為post,get,delete等。 port:例子/admins/user/**=port[8081],當(dāng)請(qǐng)求的url的端口不是8081是跳轉(zhuǎn)到schemal://serverName:8081?queryString,其中schmal是協(xié)議http或https等,serverName是你訪問的host,8081是url配置里port的端口,queryString是你訪問的url里的?后面的參數(shù)。 authcBasic:例如/admins/user/**=authcBasic沒有參數(shù)表示httpBasic認(rèn)證 ssl:例子/admins/user/**=ssl沒有參數(shù),表示安全的url請(qǐng)求,協(xié)議為https user:例如/admins/user/**=user沒有參數(shù)表示必須存在用戶,當(dāng)?shù)侨氩僮鲿r(shí)不做檢查


 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉善右旗| 武邑县| 宜春市| 遵化市| 慈利县| 万山特区| 交城县| 三台县| 丽江市| 阿克苏市| 宕昌县| 贡觉县| 双流县| 凤阳县| 宜兴市| 木里| 凌源市| 图片| 东城区| 葫芦岛市| 营山县| 江都市| 文山县| 临朐县| 武山县| 温州市| 怀远县| 天门市| 凤凰县| 五寨县| 隆回县| 基隆市| 德保县| 灵台县| 胶州市| 双鸭山市| 鄂托克前旗| 海南省| 灵石县| 绥德县| 密山市|