Component

Spring Security 모듈을 위해 @Springfield 에서는 몇몇의 구현체가 필요하다.

  • com.u2ware.springfield.security.authentication. SaltedUserDetails
  • com.u2ware.springfield.security.authentication. UserDetailsRepository
  • org.springframework.security.web.authentication.rememberme. PersistentTokenRepository

또한, @Springfield 에서는 로그인 폼 페이지를 작성하는 것을 권장한다.

  • login.html

SaltedUserDetails Interface

com.u2ware.springfield.security.authentication. SaltedUserDetails 는 Password 암호가 처리를 위한 org.springframework.security.core.userdetails.UserDetails 의 확장 인터페이스이다.

package com.u2ware.springfield.security.authentication;

import org.springframework.security.core.userdetails.UserDetails;

public interface SaltedUserDetails extends UserDetails{

	public Object getSalt();
}
		

UserDetailsRepository Interface

인증(authentication) 을 위헤 com.u2ware.springfield.security.authentication. UserDetailsRepository 구현체가 bean 으로 등록 되어야 한다.

@Springfield 는 org.springframework.security.core.userdetails. UserDetailsService의 구현체인 com.u2ware.springfield.security.authentication. SimpleUserDetailsService를 제공 하며, 이 컴퍼넌트는 작성한 UserDetailsRepository 를 자동 추적하여 사용한다.

public interface UserDetailsRepository {
	public UserDetails loadUserByUsername(String username) throws DataAccessException;
}
		

PersistentTokenRepository Interface

Remember Me 서비스를 위해 org.springframework.security.web.authentication.rememberme. PersistentTokenRepository 구현체가 bean 으로 등록 되어야 한다.

public interface PersistentTokenRepository {

    void createNewToken(PersistentRememberMeToken token);

    void updateToken(String series, String tokenValue, Date lastUsed);

    PersistentRememberMeToken getTokenForSeries(String seriesId);

    void removeUserTokens(String username);

}
		

Login Form Page

각종 설정값을 기준으로 을 로그인 폼 페이지를 작성한다.

<form method="post" action="/j_spring_security_check" >

	id : <input type="text" name="j_username"/>

	Password : <input type="hidden" name="j_password"/>

	RememberMe : <input type="checkbox" name="_spring_security_remember_me"/>

	<input type="submit"/>
</form>