java - sirve - URL protegidas que filtran componentes no protegidos de webapge a usuarios no autenticados
para que sirve el jtextpane en netbeans (1)
Creo que implementar seguridad para una aplicación JSF a través de <login-config>
+ <security-constraint>
+ <security-role>
y mediante el uso de <filter>
son dos formas diferentes. Son ellos ?
Traté de implementar seguridad a través del primer método anterior (usando <login-config>
+ <security-constraint>
+ <security-role>
) pero encontré que mi página web protegida que usaba componentes HTML protegidos y desprotegidos se entregaba con recursos desprotegidos, incluso a los usuarios no autenticados.
Necesito proteger las URL por completo para que las URL protegidas ni siquiera filtren ninguna parte de esa página web a los usuarios no autenticados. ¿Cómo hago eso?
Y, ¿la implementación de seguridad usando <filter>
en web.xml
una forma autogestionada para lidiar con la seguridad? Creo que entonces usted puede personalizar la seguridad de manera más precisa a medida que filtre / capture cada una de las solicitudes.
De hecho, son dos formas distintas. La <security-constraint>
es parte de la autenticación administrada por contenedor (CMS). El Filter
es parte de la autenticación interna.
Para restringir el acceso a ciertos recursos con CMS, solo tiene que configurar su <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>
El ejemplo anterior pone la restricción en todas las URL que coinciden con /app/*
y permite el acceso a los usuarios con someRoleName
solamente.
Para restringir el acceso a ciertos recursos con un Filter
, también debe establecer su <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>
Solo tiene que definir roles en otro lugar, quizás como un <init-param>
del filtro.