Announcement Announcement Module
Collapse
No announcement yet.
New To Spring need help!! Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • New To Spring need help!!

    I am new to spring and i was trying the below code for login authentication but it does not work. I am not able to figure where the issue is..Please some one help me out.
    web.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
    	<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>/WEB-INF/spring/root-context.xml
    		/WEB-INF/spring/appServlet/spring-security.xml
    		</param-value>
    	</context-param>
    	
    	<!-- Creates the Spring Container shared by all Servlets and Filters -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    
    	<!-- Processes application requests -->
    	<servlet>
    		<servlet-name>appServlet</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    		
    	<servlet-mapping>
    		<servlet-name>appServlet</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-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>
    
    </web-app>
    spring-security.xml
    Code:
    <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.0.xsd
    	http://www.springframework.org/schema/security
    	http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">
     
    	<http auto-config="true">
    		<intercept-url pattern="/welcome*" access="ROLE_USER" />
    		<intercept-url pattern="/j_spring_security_check" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    		<form-login login-page="/login" default-target-url="/welcome"
    			authentication-failure-url="/loginfailed" />
    		<logout logout-success-url="/logout" />
    	</http>
     
    	<authentication-manager>
    	  <authentication-provider>
    		<user-service>
    			<user name="arun" password="123" authorities="ROLE_USER" />
    		</user-service>
    	  </authentication-provider>
    	</authentication-manager>
     
    </beans:beans>
    LoginController.java
    Code:
    package com.arun.test;
    
    
    
    import java.security.Principal;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
     
    @Controller
    public class LoginController {
     
    	@RequestMapping(value="/welcome", method = RequestMethod.GET)
    	public String printWelcome(ModelMap model, Principal principal ) {
     
    		String name = principal.getName();
    		model.addAttribute("username", name);
    		model.addAttribute("message", "Spring Security Form ");
    		return "home";
     
    	}
     
    	@RequestMapping(value="/login", method = RequestMethod.GET)
    	public String login(ModelMap model) {
     
    		return "login";
     
    	}
     
    	@RequestMapping(value="/loginfailed", method = RequestMethod.GET)
    	public String loginerror(ModelMap model) {
     
    		model.addAttribute("error", "true");
    		return "login";
     
    	}
     
    	@RequestMapping(value="/logout", method = RequestMethod.GET)
    	public String logout(ModelMap model) {
     
    		return "login";
     
    	}
     
    }
    servlet-context.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/mvc"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:beans="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.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.xsd">
    
    	<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
    	
    	<!-- Enables the Spring MVC @Controller programming model -->
    	<annotation-driven />
    
    	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
    	<resources mapping="/resources/**" location="/resources/" />
    
    	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
    	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<beans:property name="prefix" value="/WEB-INF/views/" />
    		<beans:property name="suffix" value=".jsp" />
    	</beans:bean>
    	
    	<context:component-scan base-package="com.arun.test" />
    	
    	
    	
    </beans:beans>
    login.jsp
    Code:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
    <title>Login Page</title>
    <style>
    .errorblock {
    	color: #ff0000;
    	background-color: #ffEEEE;
    	border: 3px solid #ff0000;
    	padding: 8px;
    	margin: 16px;
    }
    </style>
    </head>
    <body onload='document.f.j_username.focus();'>
    	<h3>Login with Username and Password (Custom Page)</h3>
     
    	<c:if test="${not empty error}">
    		<div class="errorblock">
    			Your login attempt was not successful, try again.<br /> Caused :
    			${sessionScope["SPRING_SECURITY_LAST_EXCEPTION"].message}
    		</div>
    	</c:if>
     
    	<form name='f' action="<c:url value='/j_spring_security_check' />"
    		method='POST'>
     
    		<table>
    			<tr>
    				<td>User:</td>
    				<td><input type='text' name='j_username' value=''>
    				</td>
    			</tr>
    			<tr>
    				<td>Password:</td>
    				<td><input type='password' name='j_password' />
    				</td>
    			</tr>
    			<tr>
    				<td colspan='2'><input name="submit" type="submit"
    					value="submit" />
    				</td>
    			</tr>
    			<tr>
    				<td colspan='2'><input name="reset" type="reset" />
    				</td>
    			</tr>
    		</table>
     
    	</form>
    </body>
    </html>
    When i execute this http://localhost:8080/test/ "HTTP 404 error is displayed"

    When i remove <filter> and <filter-mapping> it works fine but after i click on submit it displays http://localhost:8080/test/j_spring_security_check "HTTP 404 error is displayed"

    I am not able to figure it out, any help will be greatly appreciated.
Working...
X