सफल लॉगिन के बाद, यह "index.php" पर रीडायरेक्ट नहीं करता है। यह उसी पृष्ठ को रीडायरेक्ट करता है जो "login.php" है। क्या मेरे वसंत-सुरक्षा.एक्सएमएल पेज में कुछ गड़बड़ है?लॉगिन के बाद स्प्रिंग सुरक्षा पुनर्निर्देशन
जिस तरह से मैं एप्लिकेशन चलाता हूं, यह मुझे "login.php" पर रीडायरेक्ट करता है जो कि अच्छा है। लेकिन यह प्राइमफेस घटकों को नहीं दिखाता है लेकिन एचटीएमएल घटक। सफलतापूर्वक लॉगिन करने के बाद, यह उसी पृष्ठ को रीडायरेक्ट करता है लेकिन इस बार यह HTML घटकों के बजाय प्राइमफ़ेस घटकों को दिखाता है।
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/pages/login.xhtml*" access="permitAll"/>
<intercept-url pattern="/**" access="hasRole('admin')" />
<form-login login-page='/pages/login.xhtml' default-target-url="/pages/index.xhtml"
authentication-failure-url="/pages/login.xhtml"/>
<logout logout-success-url="/pages/logout.xhtml" />
</http>
<!--Authentication Manager Details -->
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="customUserDetailsService">
<!-- <password-encoder hash="md5"/>-->
</authentication-provider>
</authentication-manager>
मेरे web.xml
<welcome-file-list>
<welcome-file>pages/index.xhtml</welcome-file>
</welcome-file-list>
अपना लॉगिन पेज
<p:outputPanel id="loginOutputPanelId" style="border: navy">
<p:panelGrid id="loginInformationPanel" columns="2">
<h:outputText value="Username: "/>
<p:inputText value="#{loginController.userName}"/>
<h:outputText value="Password: "/>
<p:inputText value="#{loginController.password}"/>
</p:panelGrid>
<p:commandButton value="Login" actionListener="#{loginController.login()}"/>
</p:outputPanel>
मेरी loginController.login() विधि रिटर्न "अनुक्रमणिका" स्ट्रिंग और मेरे faces.config;
<navigation-rule>
<from-view-id>/pages/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>index</from-outcome>
<to-view-id>/pages/index.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
संपादित करें: घटक के बिना यह किसी भी समस्या के बिना चलाता है। जब मैं फॉर्म-लॉगिन जोड़ता हूं तो यह कहता है "http://localhost:8080/myApplication/pages/login.xhtml
पर वेबपृष्ठ के परिणामस्वरूप बहुत सारे रीडायरेक्ट हुए हैं"।
<http auto-config='true' use-expressions="true">
<intercept-url pattern="/**" access="hasRole('admin')" />
<logout logout-success-url="/pages/logout.xhtml" />
<form-login login-page="/pages/login.xhtml"
login-processing-url="/j_spring_security_check"
default-target-url="/pages/index.xhtml"
authentication-failure-url="/pages/login.xhtml"/>
</http>
मेरे प्रवेश पृष्ठ
<p:outputPanel id="loginOutputPanelId" style="border: navy">
<p:panelGrid id="loginInformationPanel" columns="2">
<h:outputText value="Kullanıcı Adı: "/>
<p:inputText id="j_username" required="true" value="#{loginController.userName}"/>
<h:outputText value="Şifre: "/>
<p:inputText id="j_password" required="true" value="#{loginController.password}"/>
</p:panelGrid>
<p:commandButton id="login" type="submit" ajax="false" value="Login" actionListener="#{loginController.login()}"/>
</p:outputPanel>
मेरा नया loginController.login() विधि;
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
RequestDispatcher dispatcher = ((ServletRequest) context.getRequest())
.getRequestDispatcher("/j_spring_security_check");
dispatcher.forward((ServletRequest) context.getRequest(),
(ServletResponse) context.getResponse());
FacesContext.getCurrentInstance().responseComplete();
फिर भी एक ही। यह कुछ भी नहीं बदलता है। –
आप किस यूआरएल को कॉल करते हैं? क्या आप सीधे लॉगिन पेज पर कॉल करते हैं या आप किसी अन्य सुरक्षित यूआरएल को कॉल करते हैं? – baraber
index.xhtml मेरी स्वागत फ़ाइल "web.xml" में परिभाषित है। मुझे समझ में नहीं आता कि आपका क्या मतलब है। Spring-security.xml पर लॉगिन-पृष्ठ = '/ pages/login.xhtml' है और वसंत सुरक्षा पहले login.xhtml को कॉल करती है। जब मैं हमेशा-उपयोग-डिफ़ॉल्ट-लक्ष्य = "सत्य" पंक्ति जोड़ता हूं, तो अब यह किसी भी पृष्ठ को रीडायरेक्ट नहीं करता है। यह login.xhtml पेज पर रहता है। फिर मैं ब्राउजर के बार को संबोधित करने के लिए मैन्युअल रूप से इंडेक्स एड्रेस लिखता हूं। –