Spring Security 확장 - 국제 화 최종 배합
처음에 저도 그렇게 생각 했 습 니 다. 흔히 말 했 습 니 다. 국제 화가 뭐 가 무 서운 지 모 르 겠 지만 문 서 를 본 후에 조합 이 오도 되 었 습 니 다. 문서 에서 이것 에 대해 몇 마디 이 야 기 를 나 눈 적 이 있 지만 문제 가 심각 합 니 다. 그 에 의 해 오도 되 었 기 때문에 Reloadable Resource BundleMessageSource 를 Acegi 에 설 치 했 습 니 다. 그러나 재 부팅 한 후에 faint 는 아무런 효과 가 없 었 습 니 다.답답 해 져 서 수많은 중 스프링 배합 을 시도 해 보 았 지만 공 을 세우 지 못 하고 돌 아 왔 다.
인터넷 에 접속 해서 불쌍 한 꼬마 친구 가 나 와 같은 문 제 를 만 났 는 지 볼 수 밖 에 없 었 다. 마침내 Spring 의 공식 포럼 에서 외국인 도 이 문 제 를 만 났 다. 위 에 서 는 이러쿵저러쿵 말 했다. 어떤 사람 은 Reloadable Resource BundleMessageSource 대신 Acegi 의 Acegi MessageSource 를 사용 하여 Acegi 의 jar 가방 에서 messages 파일 경 로 를 사용 했다 고 언급 했다."org/acegisecurity/AcegiMessageSource"설정 후, 과연 유효 합 니 다. 하지만 이 방식 은 classpath 표지 의 상대 경 로 를 사용 할 수 없습니다. 답답 합 니 다. AcegiMessageSource 류 의 소스 코드 를 꺼 내 서 왜 그런 지 알 게 되 었 습 니 다. 원래 AcegiMessageSource 는 Spring 의 Resource BundleMessageSource 를 계승 하 였 으 나, Resource BundleMessageSource 는 classpath 를 지원 하지 않 습 니 다."그래서 기 존의 클래스 를 대체 하여 classpath 의 상대 경 로 를 지원 하 는 LocaleAware AcegiMessageSource 를 썼 습 니 다. 이 문 제 는 해결 되 었 습 니 다.
다음은 코드:
/**
*
* : AcegiMessageSource Acegi ,
* AcegiMessageSource ResourceBundleMessageSource, classpath <br>
*
* : 2009-11-16 03:39:31<br>
*
* @author Seraph<br>
* @email [email protected]<br>
*
*/
public class LocaleAwareAcegiMessageSource extends
ReloadableResourceBundleMessageSource {
public LocaleAwareAcegiMessageSource() {
setBasename("org.acegisecurity.messages");
}
public static MessageSourceAccessor getAccessor() {
return new MessageSourceAccessor(new LocaleAwareAcegiMessageSource());
}
}
XML 조합:
<bean id="messageSource" class="com.seraph.bi.suite.platform.business.login.LocaleAwareAcegiMessageSource">
<property name="basenames">
<list>
<value>classpath:/i18n/acegisecurity/messages</value>
</list>
</property>
</bean>
<bean id="daoAuthenticationProvider"
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="jdbcDaoImpl" />
<property name="userCache" ref="userCache" />
<property name="passwordEncoder" ref="jitPasswordEncoder" />
<property name="messageSource" ref="messageSource" />
</bean>
왜 Dao Authentication Provider 에서 message Source 속성 을 만들어 야 하 는 지 에 대해 서 는 중복 설명 하지 않 습 니 다. 이 문 제 는 많은 블 로그 에서 토론 되 었 습 니 다.
한 마디 로 공식 문서 도 완전히 믿 을 수 있 는 것 이 아니 라 실천 을 해 야 모든 것 을 검증 할 수 있 습 니 다. ㅎ ㅎ
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.