2012-01-24 9 views
4

は、だから私は春・セキュリティ・コア-1.2.7.1は、Grailsの2.0で動作するように取得しようとして壁に頭を叩いていたユーザを認証することはできませんチュートリアルでs2を実行します。私はH2データベースを見ることができると私は役割が作成されていることがわかり、ユーザー、それらがコードのパスワードを確認して見ることができますGrailsの春のセキュリティ・コア・プラグイン - 私が見てきた</p> <p>...

def userRole = Role.findByAuthority('ROLE_USER') ?: new Role(authority: 'ROLE_USER').save(failOnError: true) 
    def adminRole = Role.findByAuthority('ROLE_ADMIN') ?: new Role(authority: 'ROLE_ADMIN').save(failOnError: true) 

    def adminUser = User.findByUsername('admin') ?: new User(
     username: 'admin', 
     password: "admin", 
     enabled: true).save(failOnError: true) 

     def testUser = User.findByUsername('test') ?: new User(
      username: 'test', 
      password: "test", 
      enabled: true).save(failOnError: true) 

    if (!adminUser.authorities.contains(adminRole)) { 
     UserRole.create adminUser, adminRole 
    } 

    if (!testUser.authorities.contains(userRole)) { 
     UserRole.create testUser, userRole 
    } 

:ように私のブートストラップが見えるように、新しいプラグインは、あなたのためのパスワードを暗号化することを読みますユーザーロールのマッピングも正しく作成されます。

しかし、「申し訳ありませんが、そのユーザー名とパスワードを持つユーザーを見つけられませんでした」と表示されます。両方のユーザーのログインプロンプトで確認します。

私はlog4jのデバッグ「org.springframework.security」をオンにしているが、私は本当にログから抜け出すすべてがある:私はあなたのコードで明らかに何か問題を見ることができない

2012-01-23 23:08:44,875 ["http-bio-8080"-exec-5] DEBUG dao.DaoAuthenticationProvider - Authentication failed: password does not match stored value 
+0

フラッシングが時々助けてくれるかもしれません。 –

答えて

2

。私は私のためにGrailsの同じバージョンと春のセキュリティプラグイン、およびBootstrap.groovy作品に次のコードを使用しています:

OPの元のコードで
def init = { servletContext -> 

    // create some roles 
    def userRole = createRole('ROLE_USER') 
    def adminRole = createRole('ROLE_ADMIN') 

    // create some users 
    User admin = createUser('Admin', '[email protected]', adminRole) 
    User user = createUser('User', '[email protected]', userRole) 
} 

private User createUser(name, username, role) { 

    def defaultPassword = 'password' 

    User user = User.findByUsername(username) ?: new User(
      name: name, 
      username: username, 
      password: defaultPassword, 
      passwordConfirm: defaultPassword, 
      enabled: true).save() 

    if (!user.authorities.contains(role)) { 
     UserRole.create user, role 
    } 
    user 
} 

private createRole(String roleName) { 
    Role.findByAuthority(roleName) ?: new Role(authority: roleName).save() 
} 
+0

Ug ...これは私を殺している...私はGrailsUserを作成するプラグインにこれ​​まで追跡してきた...それはデータベースのユーザーを見つけて、適切な情報を渡している... – user1085751

+0

これは問題であるようだ複数のデータソース。他のデータソース(とにかく使用すべきではない)をコメントアウトするとすぐに、それはうまくいった。 – user1085751

-3

は、なぜ単一引用符にユーザー名とダブルでパスワードです引用符。それは問題かもしれません。

0

私にも同様の問題がありました。追加するのを忘れていたためでした

grails.plugin.springsecurity.userLookup.userDomainClassName ='yourpackage.User' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName =yourpackage.UserRole' 
grails.plugin.springsecurity.authority.className ='yourpackage.Role' 

その後、認証が機能していました。

関連する問題