Spring Security 모듈을 위해 @Springfield 에서는 몇몇의 구현체가 필요하다.
또한, @Springfield 에서는 로그인 폼 페이지를 작성하는 것을 권장한다.
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(); }
인증(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; }
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); }
각종 설정값을 기준으로 을 로그인 폼 페이지를 작성한다.
<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>