1

Ich arbeite an einer Anwendung, die Spring Webflow und Spring Security verwendet. Ich bin neu in beiden und in einer Lernphase. Meine Frage ist, wie ich einen bestimmten Federfluss entsorgen kann. Ich habe die unten Haupt flow.xml, deren Inhalt -Einen Spring-Flow mithilfe von Spring Security entsorgen

<flow xmlns ... > 
<subflow-state id="demoSubflowId" subflow="demo/subflow"> 
    <transition to="search" /> 
</subflow-state> 

... //There are other subflows configured here 

Die subflow.xml in einem anderen Verzeichnis vorhanden ist namens "Demo".

Im Frühjahr Sicherheits-config.xml, ich habe diese Konfiguration, die ich sichert alle webflows annehmen -

<http access-decision-manager-ref="customAccessDecisionManager"> 
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" /> 
    <form-login always-use-default-target="true" default-target-url="/spring/main" login-page="/secureLogin" 
     authentication-failure-url="/secureLogin" /> 
    <logout success-handler-ref="logoutSuccessHandler" /> 
    <custom-filter position="LAST" ref="requestInspectionFilter" /> 
</http> 

Derzeit Authentifizierung für alle Strömungen in der Anwendung benötigt wird. Aber jetzt habe ich eine Aufgabe, um einen neuen Unterablauf für eine Aufgabe zu erstellen, die keine Authentifizierung erfordert. Dies ist der Grund, aus dem ich den neuen Subflow oben mit id = demoSubflowId erstellt habe, aber jedes Mal, wenn ich versuche, diesen Fluss aus dem xhtml-Code unten zu schlagen, leitet er mich auf die Login-Seite um.

Kann mir jemand helfen, wie kann ich einen bestimmten Spring Web Flow/Subflow entfernen? Ich habe gegoogelt und herausgefunden, wie man URLs von Spring-Security ausschließt. Auch in meiner aktuellen App haben wir Servlet-URLs, die nicht gesichert sind (wie unten angegeben) und in security-config.xml konfiguriert sind, aber ich weiß nicht, wie dies für Spring-Webflow-URLs zu tun ist.

<http pattern="/secureLogin*" security="none" /> 
<http pattern="/resetPassword" security="none" /> 

Jede Hilfe zur Entsicherung eines Feder-Webflows wird geschätzt. Danke im Voraus.

Antwort

0

vorausgesetzt, Sie Zugriff auf Ihre Flow /main verwendet, die der Fall in Ihrer Konfiguration zu sein scheint, sollten Sie in der Lage sein, „unsicheres es“ mit diesem:

<http pattern="/main" security="none" /> 

[EDIT]

Es ist nicht perfekt , aber in der Hauptströmung, können Sie die anderen Subflows manuell mit <secured> sichern:

<secured attributes="ROLE_USER" /> 
+0

ich darauf zugreifen, indem Sie die moduleId wie/Feder des Haupt-uRL anhängen/main? moduleId = mySubflowId. Diese URL finden Sie oben im zweitletzten Code-Snippet. Falls ich es auf Ihre Art mache, besteht die Möglichkeit, dass alle Subflows nicht gesichert sind. Ich möchte nur einen bestimmten Subflow, z. mySubflowId wie in der Frage erwähnt. – Manish

+0

hat meine Antwort bearbeitet – rptmat57