这看起来应该很简单,但是我无法自定义预构建的spring-security-shrio的Login(登录/身份验证)和Logout功能。
我想做一些事情,例如添加登录计数器或登录日志,以便当用户登录时记录他们是谁以及其他信息,如IP地址。
另外,我去了源代码并找到了LoginController,复制了它,但注意到该控制器中没有authenticate方法。
我正在将应用程序从Grails版本2.4.4升级到Grails 3+。生成的代码在哪里?任何指导都将非常感激。
答案 0 :(得分:0)
不是特定的Shiro,但您可以在视图中添加登录目录,然后添加自己的auth.gsp来处理登录。
请注意,许多参数名称已从Grails 2更改为3,例如j_username到用户名请参阅here。
这是我最近从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>