Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Custom UserDetailsService, Не хочет осознать что пользователь найде 
V
    Опции темы
ShurikA
Дата 15.2.2014, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Привет всем, 

В одном из моих проектов мне нужно расширить пользователя (User class) и добавить тип.

Добавили поле в модель:
Код

package com.iibs

import com.iibs.account.Account
import com.iibs.security.UserType;

class User {

    transient springSecurityService

    String username
    String password
    boolean enabled = true
    boolean accountExpired
    boolean accountLocked
    boolean passwordExpired
    UserType type = UserType.CUSTOMER
    
    Account account
    
    static transients = ['springSecurityService']
    
    static optionals = ['account']
    
    static constraints = {
        username blank: false, unique: true
        password blank: false
        account nullable: true
    }

    static mapping = {
        password column: '`password`'
        type column: '`type`', enumType: "ordinal"
    }

    Set<Role> getAuthorities() {
        UserRole.findAllByUser(this).collect { it.role } as Set
    }

    def beforeInsert() {
        encodePassword()
    }

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

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


создали новый UserDetails:
Код

package com.iibs.security

import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import grails.plugin.springsecurity.userdetails.GrailsUser
/**
 * This class defines custom User Details for this application
 * 
 * @author AlexAgulyansky
 */
class TypedUserDetails extends GrailsUser {
    
    final String type

    public TypedUserDetails(GrailsUser grailsUser) {
        super(grailsUser.username, grailsUser.password, grailsUser.enabled, grailsUser.accountNonExpired, grailsUser.credentialsNonExpired,
                grailsUser.accountNonLocked, grailsUser.authorities, grailsUser.id);
    }
}


создали новый UserDetailsService
Код

package com.iibs.security

import grails.plugin.springsecurity.SpringSecurityUtils
import grails.plugin.springsecurity.userdetails.GormUserDetailsService
import grails.plugin.springsecurity.userdetails.GrailsUser
import org.springframework.security.core.userdetails.UserDetails
import org.springframework.security.core.GrantedAuthority

class TypedUserDetailsService extends GormUserDetailsService {
    
    @Override
    protected UserDetails createUserDetails(user, Collection<GrantedAuthority> authorities) {
        GrailsUser gUser = super.createUserDetails(user, authorities);
        
        TypedUserDetails userDetails = new TypedUserDetails(grailsUser)
        gUser = null
        
        userDetails.type = user.type.toString()
        
        return userDetails
    }
}


Когда прогоняю и пытаюсь сделать логин то оне просто сообщается что пользователь не найден.

Код

GrailsUser gUser = super.createUserDetails(user, authorities);


Возвращает валидного пользователя.

Код

TypedUserDetails userDetails = new TypedUserDetails(grailsUser)

Выподает, но не сообщая ничего. Даже в debug mode. 

Что я пропускаю?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 15.2.2014, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Извините, ступил. Отдавал не определённую переменную. 


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Groovy & Grails | Следующая тема »


 




[ Время генерации скрипта: 0.0969 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.