Spring Security core
プラグイン1.2.7.3をにインストールGrails 2.1.1
し、s2-quickstart
コマンドを実行してから、bootstrap.groovyで初期ユーザーとロールを初期化しましたが、それでもログインできません。以下の関連する部分のテキストBootStrap.groovy
:
if (SecRole.count == 0) {
def fUserRole = SecRole.findByAuthority('ROLE_FlowUser') ?: new SecRole(authority: 'ROLE_FlowUser').save(failOnError: true, flush: true)
def fAdminRole = SecRole.findByAuthority('ROLE_FlowAdmin') ?: new SecRole(authority: 'ROLE_FlowAdmin').save(failOnError: true, flush: true)
def bf = SecUser.findByUsername('bill') ?: new SecUser(
username: 'bill',
password: 'eagle',
firstName: 'bill',
lastName: 'fly',
email: 'bill.fly@baylorhealth.edu',
accountExpired: false,
accountLocked: false,
passwordExpired: false,
enabled: true
).save(failOnError: true, flush: true)
if (!bf.authorities.contains(fAdminRole)) {
SecUserSecRole.create bf, fAdminRole, true
}
if (!bf.authorities.contains(fUserRole)) {
SecUserSecRole.create bf, fUserRole, true
}
}
このタイプのほとんどの質問に対する答えのように思われるので、私はブートストラップでパスワードを暗号化していません。4つのレコードすべてがデータベーステーブルに書き込まれていますが、もちろん、パスワードが正しく暗号化されているかどうかはわかりません。私の最初のコントローラーには、クラスステートメントの前に次のアノテーションがあります。
@Secured(['IS_AUTHENTICATED_FULLY'])
また、config.groovyに以下を追加しました。
// Spring Security Coreプラグインによって追加されました:
grails.plugins.springsecurity.userLookup.userDomainClassName = 'cocktail.SecUser'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'cocktail.SecUserSecRole'
grails.plugins.springsecurity.authority.className = 'cocktail.SecRole'
grails.plugins.springsecurity.password.algorithm = 'SHA-256'