2014-08-28 1 views
3

Спецификации Java Servlet 3.0 и 3.1 позволяют разработчикам выполнять многие общие задачи, связанные с конфигурацией, в Java-коде, а не через традиционный механизм предоставления файла web.xml.Servlet 3.1 - Ограничения безопасности - без web.xml

У меня все это работает для моего приложения, но, пытаясь решить проблему безопасности приложений, я не мог найти никакой ссылки на то, как и возможно ли также ограничить безопасность приложений приложения с помощью кода.

В принципе, я ищу программный способ сделать следующее:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>my-secure-webapp</web-resource-name> 
     <url-pattern>/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>SSORole</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>CLIENT-CERT</auth-method> 
</login-config> 
<security-role> 
    <role-name>SSORole</role-name> 
</security-role> 

Кто-нибудь знает о помощи, чтобы сделать это?

благодарит

ответ

5

Вы найдете подробную информацию в разделе, посвященном Марк, но для короткой стороны, вы могли бы положить в сервлет что-то вроде:

@ServletSecurity((httpMethodConstraints = { 
    @HttpMethodConstraint(value = "GET", rolesAllowed = "SSORole"), 
    @HttpMethodConstraint(value = "POST", rolesAllowed = "SSORole", 
    transportGuarantee = TransportGuarantee.CONFIDENTIAL) 
}) 

Однако есть еще некоторые недостатки использования аннотаций в безопасности веб-модуля:

  • ваш url-pattern будет прямой матч ваших отображения сервлетов - не может определить /* для всего приложения, как через web.xml
  • unfor сожалению еще нет аннотаций для login-config

Так что я бы посоветовал придерживаться web.xml для определения безопасности для немного дольше.

+2

Нет аннотации для login-config !!!!!! Кто голосовал за эту спецификацию?! – jplandrain

0

Вы должны прочитать раздел 13.4 спецификации Servlet 3.