java - Spring Security Login Error : HTTP Status 404 - /j_spring_security_check -
hi trying configure spring security on application.but once enter username , password , submit form, error
http status 404 - /j_spring_security_check requested resource not available.

following configuration files :
web.xml
<filter-mapping> <filter-name>characterencodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/applicationcontext.xml,/web-inf/tasktracker-app.xml,/web-inf/tasktracker-servlet.xml,/web-inf/tasktracker-security.xml</param-value> </context-param> <servlet> <servlet-name>tasktracker</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>tasktracker</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> tasktracker-servlet.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> <bean id="tasktrackerlogincontroller" class="org.springframework.web.servlet.mvc.parameterizableviewcontroller"> <property name="viewname"> <value>/tasktracker/sign-in</value> </property> </bean> <bean id="tasktrackererrorcontroller" class="org.springframework.web.servlet.mvc.parameterizableviewcontroller"> <property name="viewname"> <value>/tasktracker/error</value> </property> </bean> <bean id="welcomecontroller" class="com.tracker.web.controllers.welcomecontroller"> <property name="businesslogic"> <ref bean="businesslogic" /> </property> <property name="viewname"> <value>/tasktracker/welcome</value> </property> </bean> <bean id="nonsecurepagemappings" class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="/tasktracker/sign-in.html">tasktrackerlogincontroller</prop> <prop key="/tasktracker/error.html">tasktrackererrorcontroller</prop> </props> </property> </bean> <bean id="pagemappings" class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="/tasktracker/welcome.html">welcomecontroller</prop> </props> </property> </bean> <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass"> <value>org.springframework.web.servlet.view.jstlview</value> </property> <property name="prefix"> <value>/web-inf/jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> tasktracker-security.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" 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.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <bean id="securityservice" class="com.tracker.web.security.securityservice"> <property name="businesslogic"> <ref bean="businesslogic" /> </property> </bean> <security:http access-denied-page="/tasktracker/tracker/error.html" auto-config="false"> <security:session-management invalid-session-url="/tasktracker/sign-in.html"> </security:session-management> <security:form-login login-page="/tasktracker/sign-in.html" default-target-url="/tasktracker/welcome.html" always-use-default-target="false" authentication-failure-url="/tasktracker/sign-in.html?error=1" /> <security:logout invalidate-session="true" logout-success-url="/tasktracker/sign-in.html" /> <security:intercept-url pattern="/tasktracker/sign-in.html*" filters="none" /> <security:intercept-url pattern="/tasktracker/welcome.html*" /> </security:http> <security:authentication-manager> <security:authentication-provider user-service-ref="securityservice" /> </security:authentication-manager> </beans> tasktracker-app.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> <bean id="userdao" class="com.tracker.data.dao.jdbc.userjdbcdao"> <property name="datasource"> <ref bean="datasource" /> </property> </bean> <bean id="businesslogic" class="com.tracker.business.logic.trackerbusinesslogicimpl"> <property name="userlogic"> <ref bean="userlogic" /> </property> </bean> <bean id="userlogic" class="com.tracker.business.logic.user.userlogic"> <property name="userdao"> <ref bean="userdao" /> </property> </bean> </beans> securityservice.java
package com.tracker.web.security; import org.apache.log4j.logger; import org.springframework.dao.dataaccessexception; import org.springframework.security.core.userdetails.userdetails; import org.springframework.security.core.userdetails.userdetailsservice; import org.springframework.security.core.userdetails.usernamenotfoundexception; import com.tracker.business.logic.trackerbusinesslogic; import com.tracker.business.model.user; public class securityservice implements userdetailsservice { private final static logger log = logger.getlogger(securityservice.class); private trackerbusinesslogic trackerbusinesslogic; public userdetails loaduserbyusername(string username) throws usernamenotfoundexception, dataaccessexception { string errmsg = "user username: " + username; user user = trackerbusinesslogic.loaduser(username); if(user!=null) { // user has been loaded } else { log.error("user username: " + username + " not found"); } return user; } public trackerbusinesslogic getbusinesslogic() { return trackerbusinesslogic; } public void setbusinesslogic(trackerbusinesslogic trackerbusinesslogic) { this.trackerbusinesslogic = trackerbusinesslogic; } } sign-in.jsp
<html lang="en-us"> <head> <title>login</title> </head> <body> <div class="login"> <h1>task tracker login</h1> <form action="/j_spring_security_check" method="post"> <input type="text" name="j_username" value="" placeholder="username" required="required" /> <input type="password" name="j_password" placeholder="password" required="required" /> <input type="hidden" name="referrer" value="${param.referrer}" /> <input type="submit" value="let me in." class="btn btn-primary btn-block btn-large"> </form> </div> </body> </html> please me missing here. thank you.
in sign-in.jsp, need change url submitting login request, can achieve below:
<c:url value="/j_spring_security_check" var="loginurl" /> and use in form action:
<form action="${loginurl}" method="post"> the login-processing-url attribute defaults /j_spring_security_check, , specifies url login form (which should include username , password) should submitted to, using http post.
Comments
Post a Comment