Это действительно два разных пути.<security-constraint>
является частью управляемой контейнером аутентификации (CMS).Filter
является частью домашней аутентификации.
Чтобы ограничить доступ к определенным ресурсам с помощью CMS, вам просто нужно установить его <url-pattern>
:
<security-constraint>
<web-resource-collection>
<web-resource-name>Application</web-resource-name>
<url-pattern>/app/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>someRoleName</role-name>
</auth-constraint>
</security-constraint>
В приведенном выше примере накладывается ограничениена всех URL-адресах, совпадающих с /app/*
и разрешающих доступ пользователям только с someRoleName
.
Чтобы ограничить доступ к определенным ресурсам с помощью Filter
, необходимо также установить его <url-pattern>
:
<filter>
<filter-name>authenticationFilter</filter-name>
<filter-class>com.example.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>authenticationFilter</filter-name>
<url-pattern>/app/*</url-pattern>
</filter-mapping>
Вам нужно только определить роли в другом месте, возможно, как <init-param>
фильтра.