У меня работает веб-сервис JAX-RS, и я хочу защитить его все, используя безопасные соединения. Поэтому я добавил это к моему web.xml
:Транспорт-гарантия CONFIDENTIAL игнорируется при наличии других ограничений безопасности
<security-constraint>
<web-resource-collection>
<web-resource-name>Prohibit unsecured HTTP</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Это работает все хорошо и денди (с перенаправлением от HTTP к HTTPS настроен в моем EAP standalone.xml
, но я, вероятно, превратить его в выключенном состоянии).
Однако, когда я теперь хочу установить BasicAuth для некоторых ресурсов я добавить еще один, более узкое ограничение:
<security-constraint>
<web-resource-collection>
<web-resource-name>Project editing</web-resource-name>
<url-pattern>/projects</url-pattern>
<url-pattern>/projects/*</url-pattern>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>PATCH</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>AUTH_USER</role-name>
</auth-constraint>
</security-constraint>
затем внезапно запросов к этим адресам й запросов GET даже не упоминаются здесь- является счастливо обслуживается через HTTP.
Если я правильно понимаю EE6 documentation, то в случае нескольких ограничений безопасности он будет сочетать url-шаблоны и http-методы. Но он ничего не говорит о транспортной гарантии.
Как я могу это решить? HTTPS везде и BasicAuth по некоторым URL-адресам?