Мне нужно отправить определенные атрибуты (скажем, человекоподобное имя пользователя) с сервера на клиент после успешной проверки подлинности. Серверная часть была выполнена. Теперь атрибут был отправлен клиенту. Из журнала, я вижу:Как получить доступ/использовать пользовательский атрибут в Spring CAS-клиент на основе безопасности
2010-03-28 23: 48: 56669 DEBUG Cas20ServiceTicketValidator: 185 - Ответ сервера: http://www.yale.edu/tp/cas'> [email protected]
<cas:proxyGrantingTicket>PGTIOU-1-QZgcN61oAZcunsC9aKxj-cas</cas:proxyGrantingTicket> <cas:attributes> <cas:FullName>Test account 1</cas:FullName> </cas:attributes> </cas:authenticationSuccess> </cas:serviceResponse>
Тем не менее, я не знаю, как получить доступ к атрибуту в клиенте (я использую Spring Security 2.0.5).
В authenticationProvider пользовательDetailsService настроен на чтение db для аутентифицированного принципала.
<bean id="casAuthenticationProvider" class="org.springframework.security.providers.cas.CasAuthenticationProvider">
<sec:custom-authentication-provider />
<property name="userDetailsService" ref="clerkManager"/>
<!-- other stuff goes here -->
</bean>
Сейчас в мой контроллер, я могу легко это сделать:
Clerk currentClerk = (Clerk)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
В идеале, я могу заполнить атрибут этого клерка объекта в другое свойство в некотором роде. Как это сделать?
Или какой подход рекомендуется использовать для распределения атрибутов во всех приложениях с централизованным характером CAS?
Является ли это веб-сервисом? RESTful? МЫЛО? – Gandalf