1

Je travaille sur une application qui utilise Spring Webflow et Spring Security. Je suis nouveau dans les deux et dans une phase d'apprentissage. Ma question est de savoir comment je ne sécurise pas un flux de printemps spécifique. Je le ci-dessous principale flow.xml dont le contenu -Je ne suis pas sûr d'un flux Spring utilisant Spring Security

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

... //There are other subflows configured here 

Le subflow.xml est présente dans un autre répertoire nommé "démo".

Au printemps sécurité config.xml, j'ai cette configuration que je suppose que tous webflows sécurise -

<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> 

authentification actuellement est nécessaire pour tous les flux dans l'application. Mais maintenant, je reçois une tâche pour créer un nouveau flux secondaire pour une tâche qui ne nécessite pas d'authentification. C'est la raison pour laquelle j'ai créé le nouveau sous-flux ci-dessus avec id = demoSubflowId, mais chaque fois que j'essaye de suivre ce flux à partir du code xhtml ci-dessous, il me redirige vers la page de connexion.

<a href="#" onclick="document.myForm.submit();" class="btn">Xhtml Unsecured demo</a> 

<form name="myForm" action="${pageContext.request.contextPath}/spring/main?moduleId=mySubflowId" method="post"> </form> 

Quelqu'un peut-il m'aider avec comment ne pas sécuriser un flux/sous-flux web Spring spécifique? J'ai googlé et trouvé comment exclure les URL de la sécurité du printemps. Dans mon application actuelle, nous avons également des URLs de servlets qui ne sont pas sécurisées (comme indiqué ci-dessous) et configurées dans security-config.xml, mais je ne sais pas comment procéder pour les URL de flux Web Spring.

Une aide/conseils pour sécuriser un flux de printemps sera appréciée. Merci d'avance.

Répondre

0

en supposant que vous accédez à votre flux en utilisant /main qui semble être le cas dans votre configuration, vous devriez être en mesure de « unsecure il » en utilisant ceci:

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

[EDIT]

Il est pas parfait , mais dans votre flux principal, vous pouvez sécuriser les autres sous-flux manuellement à l'aide <secured>:

<secured attributes="ROLE_USER" /> 
+0

Je l'accès par l'moduleId annexant la principale URL comme/printemps/principal? moduleId = monSubflowId. Cette URL est fournie ci-dessus dans le dernier extrait de code. Dans le cas où je le fais à votre façon, il y a une chance que tous les sous-flux ne soient pas sécurisés. Je veux juste ne pas sécuriser un sous-flux spécifique, par exemple. mySubflowId comme mentionné dans la question. – Manish

+0

a modifié ma réponse – rptmat57