私は springSecurity プラグインを自分のニーズに合わせようとしているので、ユーザーが認証されると、キーがユーザーに対して有効であることが確認され、ユーザーのセッションに保存される必要があります (ユーザーは複数のキーを持つことができます)。
フォームログイン:
<form action='${request.contextPath}/j_spring_security_check' method='POST' id='loginForm' name='loginForm' controller="login" onLoading="showSpinner();" onComplete="hideSpinner();" class="form-horizontal" autocomplete='off'>
<g:if test='${flash.msg}'><div class='errors_pw3'><g:message code="default.message.login"/> </div><br/></g:if>
<div class="control-group" style="margin-left:80px;">
<label class="control-label" for='j_datastore'><g:message code="label.datastore" default="Key:" /></label>
<div class="controls">
<input type='text' name='key' id='key' value='${session.user.key}' class="span7"/>
</div>
</div>
<div class="control-group" style="margin-left:80px;">
<label class="control-label" for='j_username'><g:message code="label.ubistoreid" /></label>
<div class="controls">
<input type='text' name='j_username' id='username' value='${request.remoteUser}' class="span7"/>
</div>
</div>
<div class="control-group" style="margin-left:80px;">
<label class="control-label" for='j_password'><g:message code="label.password" /></label>
<div class="controls">
<input type='password' name='j_password' id='password' class="span7"/>
</div>
</div>
ログイン コントローラ:
def auth = {
def config = SpringSecurityUtils.securityConfig
def principal = springSecurityService.principal
// Store key in the session
session.setAttribute("KEY",params.key)
println params.key + "*******"
println params.params + "-----"
if (springSecurityService.isLoggedIn()) {
redirect uri:'/secure'
}
else if (params["login_error"]) {
if(request.getParameterValues('login_error')[0] == '1') {
flash.msg = "User or password invalid !"
}
}
String view = 'index'
String postUrl = "${request.contextPath}${config.apf.filterProcessesUrl}"
render view: view, model: [postUrl: postUrl,rememberMeParameter: config.rememberMe.parameter,params:params]
}
パラメータはセッションに渡されません
springSecurityService を次のように変更する方法を教えてください。(ユーザー ドメイン クラスには、set<Key> keys
承認されたキーのリストを含むエントリが含まれます)
2)後でユーザーのセッションで使用します(認証されたら)