authenticationDao -> policyMapper, authenticationBean
parent
32296dccae
commit
35caa909ee
@ -1,166 +0,0 @@
|
||||
package cokr.xit.base.security.authentication.dao;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.security.core.Authentication;
|
||||
|
||||
import cokr.xit.base.security.authentication.AuthenticationPolicy;
|
||||
import cokr.xit.foundation.User;
|
||||
import cokr.xit.foundation.component.AbstractDao;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**사용자 인증 정보 DAO
|
||||
* @author mjkhan
|
||||
*/
|
||||
public class AuthenticationDao extends AbstractDao {
|
||||
/**새 AuthenticationDao를 생성한다.
|
||||
*/
|
||||
public AuthenticationDao() {
|
||||
setNamespace("authentication");
|
||||
}
|
||||
|
||||
/**주어진 파라미터에 해당하는 사용자를 가져온다.
|
||||
* @param params 조회 조건 파라미터
|
||||
* @return 사용자
|
||||
*/
|
||||
public User getUser(Map<String, Object> params) {
|
||||
HashMap<String, Object> copy = new HashMap<>(params);
|
||||
if (isEmpty(copy.get("userIDs")))
|
||||
copy.put("userIDs", new Object[] {params.get("userID")});
|
||||
copy.put("password", true);
|
||||
List<User> users = selectList(
|
||||
sqlID("user.getUsers"),
|
||||
copy
|
||||
);
|
||||
return !users.isEmpty() ? users.get(0) : null;
|
||||
}
|
||||
|
||||
/**주어진 아이디의 사용자를 가져온다.
|
||||
* @param userID 사용자 아이디
|
||||
* @return 사용자
|
||||
*/
|
||||
public User getUser(String userID) {
|
||||
return getUser(
|
||||
params().set("userIDs", new String[] {userID})
|
||||
);
|
||||
}
|
||||
|
||||
/**인증 성공 시 실행되는 핸들러 메소드
|
||||
* @param authentication 인증 정보
|
||||
* @return 결과값
|
||||
*/
|
||||
public int onSuccess(Authentication authentication) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**인증 실패 시 실행되는 핸들러 메소드
|
||||
* @param params 인증 시 사용한 파라미터
|
||||
* @return 결과값
|
||||
*/
|
||||
public int onFailure(Map<String, String> params) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**로그 아웃 시 실행되는 핸들러 메소드
|
||||
* @param authentication 인증 정보
|
||||
* @return 결과값
|
||||
*/
|
||||
public int onLogout(Authentication authentication) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**주어진 조건의 사용자 인증 정책 목록을 반환한다.
|
||||
* @param by 조건 필드 이름
|
||||
* <ul><li>userName - 사용자 이름</li>
|
||||
* <li>그 이외는 사용자 아이디</li>
|
||||
* </ul>
|
||||
* @param term 조건 필드값
|
||||
* @param pageNum 페이지 이름
|
||||
* @param fetchSize 한 번에 가져올 인증 정책 갯수
|
||||
* @return 사용자 인증 정책 목록
|
||||
*/
|
||||
public List<DataObject> getPolicyList(String by, String term, int pageNum, int fetchSize) {
|
||||
switch (ifEmpty(by, () -> "")) {
|
||||
case "userName": by = "USER_NM"; break;
|
||||
default: by = "USER_ID"; break;
|
||||
}
|
||||
|
||||
DataObject params = params()
|
||||
.set("by", by)
|
||||
.set("term", ifEmpty(term, () -> null))
|
||||
.set("pageNum", pageNum)
|
||||
.set("fetchSize", fetchSize);
|
||||
return selectList(sqlID("getPolicyList"), params);
|
||||
}
|
||||
|
||||
/**지정한 사용자들의 인증 정책 목록을 가져온다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 인증 정책 목록
|
||||
*/
|
||||
public List<AuthenticationPolicy> getPolicies(String... userIDs) {
|
||||
DataObject params = params()
|
||||
.set("userIDs", ifEmpty(userIDs, () -> null))
|
||||
.set("pageNum", 1)
|
||||
.set("fetchSize", userIDs.length);
|
||||
return selectList(sqlID("getPolicies"), params);
|
||||
}
|
||||
|
||||
/**지정한 사용자의 인증 정책을 가져온다.
|
||||
* @param userID 사용자 아이디
|
||||
* @return 인증 정책
|
||||
*/
|
||||
public AuthenticationPolicy getPolicy(String userID) {
|
||||
List<AuthenticationPolicy> found = getPolicies(userID);
|
||||
return !found.isEmpty() ? found.get(0) : null;
|
||||
}
|
||||
|
||||
/**인증 정책을 등록한다.
|
||||
* @param policy 인증 정책
|
||||
* @return 등록 여부
|
||||
* <ul><li>등록 되었으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean create(AuthenticationPolicy policy) {
|
||||
if (policy == null)
|
||||
return false;
|
||||
|
||||
AuthenticationPolicy found = getPolicy(policy.getUserID());
|
||||
if (found != null)
|
||||
throw applicationException(null);
|
||||
|
||||
DataObject params = params()
|
||||
.set("policy", policy)
|
||||
.set("currentUser", currentUser());
|
||||
return insert(sqlID("insertPolicy"), params) > 0;
|
||||
}
|
||||
|
||||
/**인증 정책을 수정한다.
|
||||
* @param policy 인증 정책
|
||||
* @return 수정 여부
|
||||
* <ul><li>수정 되었으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean update(AuthenticationPolicy policy) {
|
||||
if (policy == null)
|
||||
return false;
|
||||
|
||||
DataObject params = params()
|
||||
.set("policy", policy)
|
||||
.set("currentUser", currentUser());
|
||||
return insert(sqlID("updatePolicy"), params) > 0;
|
||||
}
|
||||
|
||||
/**지정한 사용자의 인증 정책을 제거한다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
public int removePolicies(String... userIDs) {
|
||||
if (isEmpty(userIDs)) return 0;
|
||||
|
||||
return delete(sqlID("removePolicy"), params().set("userIDs", userIDs));
|
||||
}
|
||||
}
|
@ -0,0 +1,120 @@
|
||||
package cokr.xit.base.security.authentication.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
||||
import cokr.xit.base.security.authentication.AuthenticationPolicy;
|
||||
import cokr.xit.foundation.component.AbstractMapper;
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
/**사용자 인증 정보 DAO
|
||||
* @author mjkhan
|
||||
*/
|
||||
@Mapper("policyMapper")
|
||||
public interface PolicyMapper extends AbstractMapper {
|
||||
/**주어진 조건의 사용자 인증 정책 목록을 반환한다.
|
||||
* @param by 조건 필드 이름
|
||||
* <ul><li>userName - 사용자 이름</li>
|
||||
* <li>그 이외는 사용자 아이디</li>
|
||||
* </ul>
|
||||
* @param term 조건 필드값
|
||||
* @param pageNum 페이지 이름
|
||||
* @param fetchSize 한 번에 가져올 인증 정책 갯수
|
||||
* @return 사용자 인증 정책 목록
|
||||
*/
|
||||
List<DataObject> getPolicyList(QueryRequest req);
|
||||
|
||||
/**지정한 사용자들의 인증 정책 목록을 가져온다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 인증 정책 목록
|
||||
*/
|
||||
List<AuthenticationPolicy> getPolicies(Map<String, ?> params);
|
||||
|
||||
/**지정한 사용자들의 인증 정책 목록을 가져온다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 인증 정책 목록
|
||||
*/
|
||||
default List<AuthenticationPolicy> getPolicies(String... userIDs) {
|
||||
DataObject params = params()
|
||||
.set("userIDs", ifEmpty(userIDs, () -> null))
|
||||
.set("pageNum", 1)
|
||||
.set("fetchSize", userIDs.length);
|
||||
return getPolicies(params);
|
||||
}
|
||||
|
||||
/**지정한 사용자의 인증 정책을 가져온다.
|
||||
* @param userID 사용자 아이디
|
||||
* @return 인증 정책
|
||||
*/
|
||||
default AuthenticationPolicy getPolicy(String userID) {
|
||||
List<AuthenticationPolicy> found = getPolicies(userID);
|
||||
return !found.isEmpty() ? found.get(0) : null;
|
||||
}
|
||||
|
||||
int insertPolicy(Map<String, ?> params);
|
||||
|
||||
/**인증 정책을 등록한다.
|
||||
* @param policy 인증 정책
|
||||
* @return 등록 여부
|
||||
* <ul><li>등록 되었으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean create(AuthenticationPolicy policy) {
|
||||
if (policy == null)
|
||||
return false;
|
||||
|
||||
AuthenticationPolicy found = getPolicy(policy.getUserID());
|
||||
if (found != null)
|
||||
throw applicationException(null);
|
||||
|
||||
DataObject params = params()
|
||||
.set("policy", policy)
|
||||
.set("currentUser", currentUser());
|
||||
return insertPolicy(params) > 0;
|
||||
}
|
||||
|
||||
/**인증 정책을 수정한다.
|
||||
* @param policy 인증 정책
|
||||
* @return 수정 여부
|
||||
* <ul><li>수정 되었으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
int updatePolicy(Map<String, ?> params);
|
||||
|
||||
/**인증 정책을 수정한다.
|
||||
* @param policy 인증 정책
|
||||
* @return 수정 여부
|
||||
* <ul><li>수정 되었으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean update(AuthenticationPolicy policy) {
|
||||
return policy != null
|
||||
&& updatePolicy(
|
||||
params()
|
||||
.set("policy", policy)
|
||||
.set("currentUser", currentUser())
|
||||
) > 0;
|
||||
}
|
||||
|
||||
/**지정한 사용자의 인증 정책을 제거한다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int removePolicy(Map<String, ?> params);
|
||||
|
||||
/**지정한 사용자의 인증 정책을 제거한다.
|
||||
* @param userIDs 사용자 아이디
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
default int removePolicies(String... userIDs) {
|
||||
return !isEmpty(userIDs) ?
|
||||
removePolicy(params().set("userIDs", userIDs)) :
|
||||
0;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue