Предварительная аутентификация с помощью токена LTPA - PullRequest
6 голосов
/ 21 октября 2011

Каков наилучший способ инициализации контекста Spring при предварительной аутентификации через токен единого входа Websphere LTPA? Прямо сейчас у меня есть собственный фильтр, который предоставляет PreAuthorizedAuthenticationToken для контекста Spring Security. Есть ли существующий фильтр, который сделал бы это для меня автоматически? У меня всегда возникали проблемы с GrantedAuthorities, когда я пытался использовать классы PreAuth.

Приветствия

1 Ответ

1 голос
/ 22 октября 2013

Лучший вариант - использовать пользовательский фильтр предварительной аутентификации, расширяя AbstractPreAuthenticatedProcessingFilter.

Вы можете получить токен из запроса и вернуть его в метод getPreAuthenticatedCredentials ().

Вы можете определить свой собственный AuthenticationUserDetailsService и передать его в PreAuthenticatedAuthenticationProvider, здесь вы можете получить предоставленные права доступа и вернуть их в объект UserDetails

<bean id="preAuthAuthenticationProvider"
          class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
        <property name="preAuthenticatedUserDetailsService">
            <bean id="myUserDetailsService"
                  class="MyUserDetailsService">
            </bean>
        </property>
    </bean>

Если вы предоставили авторизацию, не начиная с префикса ROLE по умолчанию, вы можете указать свой префикс

<bean id="myPermissionRoleVoter" class="org.springframework.security.access.vote.RoleVoter">
        <property name="rolePrefix" value="myprefix"/>
    </bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...