我正在将现有应用程序从Grails 2.4.4升级到Grails 3.2.8。我正在尝试从grails shiro插件迁移到grails spring-security-shiro插件。除了访问登录用户之外,我还想在布局模板gsp中执行正常的登录检查。
以下是我以前在我的gsp布局中所做的
main.gsp
<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>发布于 2017-07-12 04:59:36
最后,我使用了的api来执行我所需要的操作。我还需要创建一些预期的自定义登录屏幕。您可以使用自定义权限逻辑跳转到spring安全性。见下文。
http://grails-plugins.github.io/grails-spring-security-core/3.2.x/index.html#securityTagLib
<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
static hasMany = [ permissions: Permission ]权限
class Permission {
Account account
String permission
static constraints = {
}
}如何使用:
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
}https://stackoverflow.com/questions/43713649
复制相似问题