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.