-1

def user=User.findByUserIdAndPassword(params.userId,params.password)サインアップが成功した後でもnullです...Spring Securityを使用しています。

私のユーザードメインクラスは

class User {

   transient springSecurityService

   Integer id 
   String userId
   String password
   byte[] photo
   String fullName
   String bio
   String email
   String address
   String username

   boolean enabled
   boolean accountExpired
   boolean accountLocked
   boolean passwordExpired

   static hasMany = [places: Place, badges: Badge, checkIns:CheckIn, friend:User]

   static belongsTo = Place

   String toString(){
      "$userId"
   }

   static constraints = {
      fullName(nullable: true,maxSize:20,matches:"[a-zA-Z\40-\176]+")
      bio(nullable: true, maxSize: 100,matches:"[a-zA-Z\40-\176]+")
      email(email: true, blank: false)
      photo(nullable: true,maxSize:1000000)
      address( nullable:true,maxSize:40,matches:"[a-zA-Z0-9\40-\176]+")
      userId(size:5..10,unique:true,nullable:false,matches:"[a-zA-Z][a-zA-Z0-9 ]+")
      password(size:5..10,password:true,nullable:false)
      username blank: false, unique: true
   }

   static mapping = {
      password column: '`password`'
   }

   Set<Authority> getAuthorities() {
      UserAuthority.findAllByUser(this).collect { it.authority } as Set
   }

   def beforeInsert() {
      encodePassword()
   }

   def beforeUpdate() {
      if (isDirty('password')) {
         encodePassword()
      }
   }

   protected void encodePassword() {
      password = springSecurityService.encodePassword(password)
   }
}

私が実装すれば

System.out.println(" userid------------------->" + params.userId);
System.out.println(" password------------------->" + params.password);
System.out.println(" username------------------->" + params.username);

ログインしているユーザーのuserIdとパスワードを見ることができます...しかし、なぜですか

def user=User.findByUserIdAndPassword(params.userId,params.password)ヌル??

4

1 に答える 1

1

パスワードはハッシュ化されてデータベースに保存されます。したがって、params.password はデータベースに格納されている値と一致しません。

その上、何を達成しようとしていますか?サービスにアクセスすることで、ユーザーに手動でアクセスできます。

springSecurityService.currentUser

また、ログインのために spring-security-ui プラグインを使用することをお勧めします。

それが役立つことを願っています:)

于 2012-04-30T11:15:24.137 に答える