在上一篇文档中,对Spring Security中的身份认证的流程和管理进行了详细介绍,本文将从实践的角度告诉大家如何使用最简便的方式用Spring Security进行身份验证。


    开发环境如下:

    JDK 1.7

    Tomcat 7

    Eclipse 

    Spring Security 3.2.5

    

    项目目录结构如下:


Spring Security身份认证之HelloSpringSecurity(附源码)_第1张图片


    1.新建Maven Project,对Maven不熟悉的童鞋请自行充电,现在这个念头不学习Maven绝对是不行的。


Spring Security身份认证之HelloSpringSecurity(附源码)_第2张图片


    2. 在Pom.xml添加相关jar依赖。



  4.0.0
  com.favccxx.favsecurity 
  HelloSpringSecurity 
  war 
  0.0.1-SNAPSHOT  
  HelloSpringSecurity Maven Webapp
  http://maven.apache.org
  
	
  		3.2.8.RELEASE
  
  
     
        
      junit  
      junit
      3.8.1
      test
     
    
    
    
		org.springframework
		spring-core
		${spring.version}
	
	
		org.springframework
		spring-webmvc
		${spring.version}
	
	
		org.springframework
		spring-beans
		${spring.version}
	
	
		org.springframework
		spring-context
		${spring.version}
	
	
		org.springframework
		spring-aop
		${spring.version}
	
	
		org.springframework
		spring-tx
		${spring.version}
	





	
        org.freemarker
        freemarker
        2.3.20
    
    
		org.springframework
		spring-orm
		${spring.version}
	
    
    
      
	    org.springframework.security
	    spring-security-web
	    3.2.5.RELEASE 
	   
	  
	    org.springframework.security
	    spring-security-config
	    3.2.5.RELEASE
	  
	   
	  
           jstl
           jstl
           1.2
       
  
  
    HelloSpringSecurity
  


    3. 配置web.xml,在容器启动时加载Spring MVC的配置文件与Spring Security的配置文件。




	Hello Spring Security
	
	
		contextConfigLocation
		
			classpath:springSecurity.xml
		
	
	
	
         org.springframework.web.context.ContextLoaderListener
     
     
     
		springSecurityFilterChain
		org.springframework.web.filter.DelegatingFilterProxy
	
	
		springSecurityFilterChain
		/*
	
     
     
		springMVC
		org.springframework.web.servlet.DispatcherServlet
		 
             contextConfigLocation
             classpath:spring-context.xml
        
        1
	
	
		springMVC
		/
	


    4. SpringSecurity.xml配置文件如下





	
		
		
	
	
	
	
		
			
				
				
			
		 
	
	


    5.spring-context.xml配置文件如下





	
	
	
	
    
        
        
        
    


    6. 新建HelloSpringSecurityController.java文件,代码如下:


package com.favccxx.favsecurity.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloSpringSecurityController {
	
	@RequestMapping("/hello")
	public ModelAndView hello(){
		ModelAndView mav = new ModelAndView();
		mav.addObject("title", "Welcome - Spring Security Hello World");
		mav.addObject("message", "This is welcome page!");
		mav.setViewName("/hello");
		return mav;
	}
	
	@RequestMapping(value = { "/", "/welcome" }, method = RequestMethod.GET)
	 public ModelAndView welcome() {
		ModelAndView mav = new ModelAndView();
		mav.addObject("title", "Welcome - Spring Security Hello World");
		mav.addObject("message", "This is welcome page!");
		mav.setViewName("/hello");
		return mav;
	 }
	
	 @RequestMapping(value = "/admin", method = RequestMethod.GET)
	      public ModelAndView admin() {
	  
	          ModelAndView mav = new ModelAndView();
	          mav.addObject("title", "Admin - Spring Security Hello World");
	          mav.addObject("message", "This is protected page!");
	          mav.setViewName("/admin");
	         return mav;
	 
	    }
	 
	 }

}


    7. 在/WEB-INF/views文件夹下分别创建admin.jsp和hello.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>    




${title}


	

Title : ${title}

Message : ${message}

 Welcome : ${pageContext.request.userPrincipal.name} | "> Logout


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




${title}


	

Title:${title}

Message:${message}


    8. 系统运行效果图如下


Spring Security身份认证之HelloSpringSecurity(附源码)_第3张图片

Spring Security身份认证之HelloSpringSecurity(附源码)_第4张图片

Spring Security身份认证之HelloSpringSecurity(附源码)_第5张图片


    备注:猛击此处下载源代码