Безопасность Spring без входа в форму

Я внедрил Spring Security Expression в свой контроллер Spring приложения :

@Controller
@RequestMapping("init")
public class InitController {
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public @ResponseBody String home(){
        return "This is the init page";
    }
}

. С этой конфигурацией безопасности:

<http auto-config="true" create-session="stateless" use-expressions="true">
    <intercept-url pattern="/_ah*" access="permitAll" />
    <intercept-url pattern="/init/*" access="hasRole('ROLE_ADMIN')"/>
    <intercept-url pattern="/init*" access="hasRole('ROLE_ADMIN')"/>
</http>

При доступе к этому ресурсу отображается форма входа Spring по умолчанию (http://localhost:8888/spring_security_login). однако я не хочу, чтобы это произошло, и я просто хочу, чтобы учетные данные были вставлены в заголовок запроса, например «x -ключ авторизации -» или что-то еще, что соответствует сценарию.

Каково возможное решение для этого?

  • Хорошо ли иметь ключ авторизации x --в запросе
  • Если да, то как это согласуется с механизмом безопасности Spring, то есть как это согласуется с выражением «hasRole»
  • Важно, чтобы мой веб-сервис не имел состояния, и каждый запрос аутентифицировался
  • . Наконец, как справиться с безопасностью Spring без необходимости иметь дело с формой входа в Spring

заголовок

6
задан xybrek 16 August 2012 в 10:59
поделиться