2013-11-18 3 views
0

Я пытаюсь создать страницу регистрации с использованием Spring, Hibernate и Mysql. Я могу успешно зарегистрировать информацию пользователя (сохранить данные пользователя с помощью классов Controller, Services, Dao и Domain). Я хочу получить этого пользователя, используя электронную почту и пароль, которые он ввел при регистрации. Как мне написать запрос в spring-security.xml, чтобы получить имя пользователя и пароль.Регистрационная форма с использованием весеннего каркаса

<beans:beans xmlns="http://www.springframework.org/schema/security" 
     xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> 

     <http auto-config="true"> 
      <intercept-url pattern="/welcome*" access="ROLE_USER" /> 
      <form-login login-page="/login" default-target-url="/welcome" 
       authentication-failure-url="/loginfailed" /> 
      <logout logout-success-url="/logout" /> 
     </http> 

     <authentication-manager> 
      <authentication-provider> 
       <user-service> 

        <user name="testuser" password="testuser" authorities="ROLE_USER" /> 
    </user-service> 
      </authentication-provider> 
     </authentication-manager> 


    </beans:beans> 




@Entity 
@Table(name = "USER_DETAILS") 
public class User { 

    @Id 
    @GeneratedValue 
    @Column (name = "USER_ID") 
    private int id; 

    @Column (name = "EMAIL") 
    private String email; 

    @Column (name = "PASSWORD") 
    private String password; 

    @Column (name = "FIRST_NAME") 
    private String firstName; 

    @Column (name = "LAST_NAME") 
    private String lastname; 

    @Column (name = "ADDRESS") 
    private String address; 


    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 
    public String getFirstName() { 
     return firstName; 
    } 
    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 
    public String getLastname() { 
     return lastname; 
    } 
    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 
    public String getAddress() { 
     return address; 
    } 
    public void setAddress(String address) { 
     this.address = address; 
    } 



} 
+1

Вам нужно написать реализацию пользовательских UserDetailsService. Пожалуйста, посмотрите этот пост http://howtodoinjava.com/2013/04/16/custom-userdetailsservice-example-for-spring-3-security/ – shazin

ответ

1

Вам несколько вариантов здесь 2:

  1. Использование JDBC-пользователем услуг тег аутентификации-провайдера;

Это позволяет вам указать источник данных и выполнить запросы для извлечения сведений о пользователе. Ссылка ниже показывает, что вы можете и не можете добавить в тег.

Это, по-видимому, правильный вариант для вас, так как вы хотите поместить запрос в xml.

Ссылка: http://docs.spring.io/spring-security/site/docs/3.1.4.RELEASE/reference/appendix-namespace.html#nsa-jdbc-user-service

Пример:

<authentication-manager> 
    <authentication-provider> 
    <jdbc-user-service data-source-ref="securityDataSource"/> 
    </authentication-provider> 
</authentication-manager> 

Полный пример можно найти здесь: http://www.raistudies.com/spring-security-tutorial/authentication-authorization-spring-security-mysql-database/

  1. Создание пользовательских реквизитов пользователя услуги;

Это позволяет обеспечить собственную реализацию UserDetailsService. Ссылка на весенний документ ниже.

Ссылка: http://docs.spring.io/spring-security/site/docs/3.1.4.RELEASE/reference/technical-overview.html#tech-userdetailsservice

Смежные вопросы