<security-constraint> <url-pattern> und das Zeichen " * " innerhalb web.xml
Useing Frühjahr für die Sicherheit, ich kann das Programm ausführen, mit dem folgenden code.
<intercept-url pattern="/web/admin**/**" access="ROLE_ADMIN" requires-channel="https"/>
<intercept-url pattern="/web/**/" access="ROLE_USER,ROLE_ADMIN" requires-channel="https"/>
Ich versuche zu tun, dieses innerhalb einer web.xml derzeit. Mithilfe von JBOSS bereitstellen, ein .war-Datei. Unten ist das, was ich habe, ist Das url-Muster ist, was mir die Probleme in der ersten security-constraint. Die Seiten befinden sich in, und Namen /web/adminarchive /web/adminsettings /web/adminstuff etc...
Der code oben im Frühjahr behandelt es so, wie ich will, mit dem url /web/admin**/**, alle zu fangen admin-Seiten. Ich auskommentiert, den /* - Abschnitt, da ich weiß, dass es funktioniert, so dass nur der admin eine. Mithilfe dieser Struktur wirft keine Fehler, es funktioniert einfach nicht die Eingabeaufforderung für login an alle.
<security-constraint>
<web-resource-collection>
<web-resource-name>Name</web-resource-name>
<url-pattern>/web/admin**/**</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>ROLE_ADMIN</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Name</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>ROLE_USER</role-name>
</auth-constraint>
</security-constraint>
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE
Sind Sie direkt der code, den ich gepostet nicht funktionieren für die Zwecke, die Sie benötigen.
Laut Java Servlet 3.1 Spezifikation, Kapitel 12.2, die Zuordnungen sind wie folgt definiert:
Den letzten Einschränkung:
Für mein Verständnis, die Sie nicht in der Lage, verwenden Sie das * - Platzhalterzeichen* bezieht sich auf Unterverzeichnissen, da es ein spezielles Spiel.
Scheint es, wie
<url-pattern>/web/admin/*</url-pattern>
funktionieren sollte./web/adminsettings
oder/web/admin/settings
? Beucase der ehemalige nicht funktioniert. Servlet wird nicht lassen Sie die Verwendung von Platzhaltern in dieser Weise. JBoss Tomcat verwendet eine Gabel unter die Hauben und das Verhalten sollte gleich sein wie die Spezifikation. Es scheint mir, dass müssen Sie fügen Sie eine weitere Ebene des Pfades, wie/web/admin/settings
wenn Sie wollen, gehen Sie mit der Servlet-Spezifikation anstelle der Feder.