2017-04-23 34 views
0

这看起来应该很容易,但我无法自定义预先构建的spring-security-shrio的登录(登录/身份验证)和注销功能。如何自定义Spring Security Shiro Grails插件登录注销功能?

我想做一些事情,如添加一个登录计数器或登录日志,以便当用户登录时我登录他们是谁和其他信息,如IP地址。

此外,我去了源,发现LoginController,复制,但注意到该控制器内没有验证方法。

我从升级版本的Grails 2.4.4应用程序中的Grails 3+。生成的代码在哪里?任何指导将不胜感激。

+0

http://plugins.grails.org/plugin/grails/spring-security-shiro是印记四郎下下grails2的工作,但3 – Vahid

+0

呀,目前不支持仍然在破3有一个插件,虽然是桥梁的Grails 3,我有工作四郎和春季安全。 – mcroteau

回答

0

不四郎具体的,但你可以添加一个登录目录视图然后加上自己的auth.gsp来处理记录。

注意,从Grails的2改为3数字的参数名称例如j_username到用户名请参见here

这里有一个自举风格一个I从一个Grails 2至3的应用程序转换最近:

<html> 
<head> 
    <meta name='layout' content='main'/> 
    <title><g:message code="springSecurity.login.title"/></title> 
</head> 

<body> 
<div id='login' class="maincontentdiv"> 

     <g:render template="/templates/alerts"/> 

     <form action='${postUrl}' method='POST' id='loginForm' class='form-horizontal' autocomplete='off'> 

     <fieldset> 
      <legend><g:message code="springSecurity.login.header"/></legend> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="username"> 
        <g:message code="springSecurity.login.username.label" default="Username" /> 
        <span class="required-indicator">*</span> 
       </label> 
       <div class="col-md-4"> 
        <input type='text' class='form-control' name='username' id='username'/> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="password"> 
        <g:message code="springSecurity.login.password.label" default="Password" /> 
        <span class="required-indicator">*</span> 
       </label> 
       <div class="col-md-4"> 
        <input type='password' class='form-control' name='password' id='password'/> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label class="col-md-4 control-label" for="submit"></label> 
       <div class="col-md-4"> 
        <input type='submit' id="submit" class='btn btn-primary' value='${message(code: "springSecurity.login.button")}'/> 
       </div> 
      </div> 
     </fieldset> 
     </form> 
</div> 
<script type='text/javascript'> 
    <!-- 
    (function() { 
     document.forms['loginForm'].elements['username'].focus(); 
    })(); 
    // --> 
</script> 
</body> 
</html> 
相关问题