Spring Security 4 Custom Login page failure authentication -
please need project,the authentication not proceed when use custom login page show user or password invalid.
pom.xml
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.football</groupid> <artifactid>reservation</artifactid> <packaging>war</packaging> <version>0.0.1-snapshot</version> <name>reservation maven webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>4.2.2.release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>4.2.2.release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>4.2.2.release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>4.2.2.release</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-config</artifactid> <version>4.0.3.release</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-core</artifactid> <version>4.0.3.release</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-web</artifactid> <version>4.0.3.release</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> </dependency> <dependency> <groupid>commons-logging</groupid> <artifactid>commons-logging</artifactid> <version>1.1.3</version> </dependency> <dependency> <groupid>jstl</groupid> <artifactid>jstl</artifactid> <version>1.2</version> </dependency> </dependencies> <build> <finalname>reservation</finalname> </build> </project> web.xml
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="webapp_id" version="3.1"> <context-param> <param-name>contextconfiglocation</param-name> <param-value> classpath:/spring/mvc-config.xml, classpath:/spring/security-config.xml, </param-value> </context-param> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextattribute</param-name> <param-value>org.springframework.web.context.webapplicationcontext.root</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/login</url-pattern> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <!-- spring security --> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class> <init-param> <param-name>contextattribute</param-name> <param-value>org.springframework.web.context.webapplicationcontext.root</param-value> </init-param> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> login.jsp
<!doctype html> <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <spring:url value="/resources/css/bootstrap.min.css" var="bootstrapcss" /> <link href="${bootstrapcss}" rel="stylesheet" /> <spring:url value="/resources/css/formvalidation.min.css" var="formvalidation" /> <link href="${formvalidation}" rel="stylesheet" /> <spring:url value="/resources/css/navbar.css" var="navbar" /> <link href="${navbar}" rel="stylesheet" /> <spring:url value="/resources/css/main.css" var="main" /> <link href="${main}" rel="stylesheet" /> <title>login</title> </head> <body> <jsp:include page="header.jsp" /> <section class="container-fluid"> <div class="row"> <div class="jumbotron col-centered col-md-4 col-sm-6 col-xs-9"> <c:if test="${param.login_error != null}"> invalid username / password </c:if> <c:url var="loginurl" value="/login" /> <form class="form-horizontal" role="form" action="${loginurl}" method="post"> <div class="form-group"> <label for="username">username</label> <input type="text" class="form-control" id="username" name="username" placeholder="enter username"> </div> <div class="form-group"> <label for="password">password</label> <input type="password" class="form-control" id="password" name="password" placeholder="password"> </div> <div class="checkbox"> <label> <input type="checkbox"> remember me </label> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">login</button> <button type="button" class="btn btn-default">cancel</button> <span class="glyphicon glyphicon-lock"></span> <a href="register.html" class="left">inscrivez-vous</a> </div> <input type="hidden" name="${_csrf.parametername}" value="${_csrf.token}" /> </form> </div> </div> </section> <jsp:include page="infosite.jsp" /> <jsp:include page="mostpopulartickets.jsp" /> <jsp:include page="footer.jsp" /> <jsp:include page="copyright.jsp" /> <spring:url value="/resources/js/jquery-1.11.3.min.js" var="jquery_url" /> <script src="${jquery_url }" type="text/javascript"></script> <spring:url value="/resources/js/bootstrap.min.js" var="bootstrap_url" /> <script src="${bootstrap_url }" type="text/javascript"></script> <spring:url value="/resources/js/formvalidation.min.js" var="formvalidation_url" /> <script src="${formvalidation_url}" type="text/javascript"></script> <spring:url value="/resources/js/bootstrap.min-validation.js" var="bootstrap.min-validation_url" /> <script src="${bootstrap.min-validation_url}" type="text/javascript"></script> <spring:url value="/resources/js/script.js" var="script_url" /> <script src="${script_url}" type="text/javascript"></script> </body> </html> security-config.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:security="http://www.springframework.org/schema/security" xsi:schemalocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <security:http use-expressions="true" disable-url-rewriting="true" auto-config="true"> <security:intercept-url pattern="/resources/**" access="permitall()" /> <security:intercept-url pattern="/ligue1pro" access="hasrole('role_admin')" /> <security:intercept-url pattern="/registration" access="permitall()" /> <security:intercept-url pattern="/login" access="permitall()" /> <security:intercept-url pattern="/" access="permitall()" /> <security:form-login default-target-url="/" login-page="/login" authentication-failure-url="/login?login_error" always-use-default-target="true" password-parameter="username" username-parameter="password" /> <security:csrf /> </security:http> <security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="user" authorities="role_admin" password="user" /> </security:user-service> </security:authentication-provider> </security:authentication-manager> </beans> mvc-config.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <mvc:default-servlet-handler /> <mvc:annotation-driven /> <context:component-scan base-package="com.footballreservation.controller" /> <mvc:resources location="/resources/" mapping="/resources/**" /> <mvc:view-controller path="/" view-name="home" /> <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandlermapping"> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter"> </bean> <bean id="viewresolver" class="org.springframework.web.servlet.view.urlbasedviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview" /> <property name="prefix" value="/web-inf/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans> maincontroller.java
package com.footballreservation.controller; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; @controller("maincontroller") public class maincontroller { @requestmapping("/,home") public string showhome() { return "home"; } @requestmapping(value = "/ligue1pro", method = requestmethod.get) public string showligue1propage() { return "ligue1pro"; } @requestmapping(value = "/login", method = requestmethod.get) public string showloginpage() { return "login"; } @requestmapping(value = "/registration", method = requestmethod.get) public string showregistrationpage() { return "register"; } }
it looks problem lies in spring security configuration file (security-config.xml), per code have given
password-parameter="username" username-parameter="password" try changing to
password-parameter="password" username-parameter="username"
Comments
Post a Comment