访问grails shiro插件中的特定控制器

时间:2013-12-16 13:46:59

标签: grails grails-plugin shiro

我有一个grails应用程序,我在其中使用shiro插件来增加安全性。如果没有登录任何用户,我不会访问任何网址。一切都很好。现在我想找到是否有任何方法允许在没有登录的情况下访问某些网址?有些链接应该无需登录即可使用。

1 个答案:

答案 0 :(得分:3)

这很容易。如果你有一个标准的shiro设置,你会在项目ShiroSecurityFilters.groovy - 文件夹中找到conf,如下所示:

class SecurityFilters {
  def filters = {
    all(uri: "/**") {
      before = {
        // Ignore direct views (e.g. the default main index page).
        if (!controllerName) return true
        // Access control by convention. 
        accessControl() 
      } 
    } 
  } 
}

只需用以下内容替换它:

class SecurityFilters {
  def filters = {
    all(uri: "/**") {
      before = {
        // Ignore direct views (e.g. the default main index page).
        if (!controllerName) return true
        // Access control by convention. 
        if ((controllerName+':'+actionName) in ['book:view', 'book:list']) {
          return true
        } else {
          accessControl() 
        }
      } 
    } 
  } 
}

这样,每个人都可以访问list的{​​{1}}和view两个操作。

希望有帮助...

相关问题