Refreshable — 자격 증명 갱신 인터페이스
Refreshable — 자격 증명 갱신 인터페이스
Refreshable은 자격 증명(credential) 같은 객체가 선택적으로 구현해서 자신을 갱신(refresh)할 수 있는 능력을 제공하는 인터페이스예요. 예를 들어 특정 시간 제한 수명을 가진 자격 증명이 이 인터페이스를 구현하면, 호출자가 그 유효 시간을 갱신할 수 있어요.
본문
public interface Refreshable
알려진 구현 클래스로 KerberosTicket이 있어요.
메서드
boolean isCurrent()— 이 객체가 현재 유효한지(current) 확인해요. 현재 유효하면true, 아니면false를 반환해요.void refresh() throws RefreshFailedException— 이 객체의 유효 기간을 갱신하거나 연장해요. 호출자가 이 객체의 유효 기간을 갱신·연장할 권한이 없으면SecurityException, 갱신 시도가 실패하면RefreshFailedException이 발생해요.
왜 중요한가요?
특정 기간 동안만 유효한 자격 증명(예: 특정 시간 후 만료되는 티켓)은 시간이 지나면 쓸 수 없게 돼요. Refreshable을 구현하면 사용자가 자격 증명을 새로 받지 않고도 유효 기간을 연장(grant a new ticket)해서 계속 사용할 수 있게 해줘요. KerberosTicket이 대표적인 예시예요.
흐름을 보면, 사용자는 isCurrent()로 자격 증명이 아직 유효한지 확인하고, 만료가 다가오면 refresh()를 호출해 유효 기간을 연장해요. 이렇게 해서 세션을 끊지 않고 안전하게 인증 상태를 유지할 수 있어요.