首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails spring-security-shiro :在gsp中与Apache Shiro主题合作-从shiro迁移到spring安全-shiro

Grails spring-security-shiro :在gsp中与Apache Shiro主题合作-从shiro迁移到spring安全-shiro
EN

Stack Overflow用户
提问于 2017-05-01 02:51:41
回答 1查看 335关注 0票数 0

我正在将现有应用程序从Grails 2.4.4升级到Grails 3.2.8。我正在尝试从grails shiro插件迁移到grails spring-security-shiro插件。除了访问登录用户之外,我还想在布局模板gsp中执行正常的登录检查。

以下是我以前在我的gsp布局中所做的

main.gsp

代码语言:javascript
复制
<g:if test="${shiro.principal()}">
    Welcome back 
    <g:link controller="account" action="profile">
        <shiro:principal/>
    </g:link>|
    <g:link controller="auth" action="signOut" class="navbar-brand">Logout</g:link>
</g:if>
<g:else>
    <g:link controller="auth" action="login" class="navbar-brand">Login</g:link>
</g:else>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 04:59:36

最后,我使用了的api来执行我所需要的操作。我还需要创建一些预期的自定义登录屏幕。您可以使用自定义权限逻辑跳转到spring安全性。见下文。

http://grails-plugins.github.io/grails-spring-security-core/3.2.x/index.html#securityTagLib

代码语言:javascript
复制
<sec:ifLoggedIn>
    Welcome back 
    <g:link controller="account" action="profile">
        <sec:username/>
    </g:link>|
    <g:link controller="logout">Logout</g:link>
</sec:ifLoggedIn>
<sec:ifNotLoggedIn>
    <g:link controller="auth" action="your_custom_login">Login</g:link>
</sec:ifNotLoggedIn>

权限逻辑

我从严格基于字符串的权限切换到了推荐的权限对象。

Account.groovy

代码语言:javascript
复制
static hasMany = [ permissions: Permission ]

权限

代码语言:javascript
复制
class Permission {

   Account account
   String permission

   static constraints = {
   }
}

如何使用:

代码语言:javascript
复制
def permission = accountInstance.permissions.find { 
    it.permission == "account:customer_profile:${accountInstance.id}" 
}
if (!permission){
    flash.message = "You do not have permission to access this..."
    redirect(controller:'controller', action:'index')
    return
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43713649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档