Получить полномочия от имени пользователя в заголовке для весенней безопасности

Мне нужно реализовать весеннюю безопасность для моего API-контроллера.

-> Каждая страница должна содержать заголовок с именем пользователя (как в Siteminder?).
-> Каждый пользователь уже зарегистрирован в SpringConfiguration

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
                ... gets all users from database with their authorities
}

-> Для каждой страницы настраивается, какие полномочия должен иметь пользователь

@Override
protected void configure(HttpSecurity http) throws Exception { 
        http.authorizeRequests()
            .antMatchers("**/Pagename/**").hasAuthority("authorityName");
    }

Я не могу понять сейчас, что я должен добавить, чтобы программа читала имя пользователя из шапки страницы. Фильтр проверки подлинности Заголовка Запроса? Другой тип фильтра?

Другой вопрос: не могли бы вы дать мне ссылку на учебник/пример, как его создать без использования XML.


person user2957954    schedule 06.05.2015    source источник
comment
Я нашел хороший пример конфигурации: stackoverflow.com /вопросы/22844236/   -  person user2957954    schedule 07.05.2015


Ответы (2)


попробуйте поместить следующий JSTL, где вам нужно получить имя пользователя "${pageContext.request.remoteUser}"

person Alaa Abuzaghleh    schedule 06.05.2015
comment
Мне не нужно его отображать. Мне нужно извлечь его из заголовка и проверить полномочия этого пользователя. - person user2957954; 06.05.2015
comment
затем используйте настраиваемый фильтр безопасности, просто найдите, как использовать настраиваемый фильтр безопасности весной 4 - person Alaa Abuzaghleh; 06.05.2015

взгляните на это руководство: Здравствуйте! Java-конфигурация Spring Security

person BH-Ayb    schedule 06.05.2015
comment
Как это мне поможет? Нет примеров с именем пользователя в шапке и фильтрах. Остальное, как вы видите выше, я уже реализовал сам. - person user2957954; 06.05.2015
comment
если вам нужно userName ((HttpServletRequest)request).getUserPrincipal().getName() если вам нужны полномочия SecurityContextHolder.getContext().getAuthentication().getAuthorities() ссылка на первый метод находится в этом руководстве - person BH-Ayb; 06.05.2015
comment
Мне нужно извлечь имя пользователя из заголовка страницы - person user2957954; 06.05.2015
comment
Затем вы можете получить его из HttpServletrequest ((HttpServletRequest) request).getUserPrincipal().getName() - person BH-Ayb; 06.05.2015