Spring Security HelloWord

本文介绍如何使用 Spring Security 安全框架实现基于 Spring 的企业应用系统的声明式安全访问控制。通过 Maven Web App 项目搭建环境,并配置 Spring MVC 框架及 Spring Security 相关配置文件,最终实现页面访问权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


之前项目中权限管理都是通过Spring的拦截器,在拦截器中自定义访问页面的权限,今天尝试用一下 Spring Security 的安全框架 


一. 简介 :

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。


二. 配置步骤


a)  建立Mavin WebApp 项目 ,配置pom.xml文件



  

	
   
    4.0.0
   
	
   
    com.springsecuritydemo
   
	
   
    SpringSecurityDemo
   
	
   
    1.0.0
   
	
   
    war
   

	
   
		
    
     1.0.0
    
		
    
     4.0.8.RELEASE
    
		
    
     3.2.3.RELEASE
    
		
    
     1.2
    
	
   

	
   

		
    
		
    

		
    
			
     
      org.springframework
     
			
     
      spring-core
     
			
     
      ${org.springframework.version}
     
		
    


		
    
			
     
      org.springframework
     
			
     
      spring-aspects
     
			
     
      ${org.springframework.version}
     
		
    

		
    
		
    
			
     
      org.springframework
     
			
     
      spring-expression
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-beans
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-aop
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-context
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-context-support
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-tx
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-jdbc
     
			
     
      ${org.springframework.version}
     
		
    

		
    
		
    
			
     
      org.springframework
     
			
     
      spring-oxm
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-web
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-webmvc
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-webmvc-portlet
     
			
     
      ${org.springframework.version}
     
		
    
		
    
		
    
			
     
      org.springframework
     
			
     
      spring-test
     
			
     
      ${org.springframework.version}
     
			
     
      test
     
		
    
		
    

		
    
		
    
			
     
      org.aspectj
     
			
     
      aspectjweaver
     
			
     
      1.7.0
     
		
    
		
    
			
     
      aopalliance
     
			
     
      aopalliance
     
			
     
      1.0
     
		
    
		
    
			
     
      cglib
     
			
     
      cglib-nodep
     
			
     
      2.2.2
     
		
    

		
    
		
    
			
     
      org.mybatis
     
			
     
      mybatis-spring
     
			
     
      1.1.1
     
		
    
		
    
		
    
			
     
      org.mybatis
     
			
     
      mybatis
     
			
     
      3.1.1
     
		
    

		
    
		
    
			
     
      mysql
     
			
     
      mysql-connector-java
     
			
     
      5.1.21
     
		
    
		
    
		
    
			
     
      log4j
     
			
     
      log4j
     
			
     
      1.2.14
     
		
    
		
    
		
    
			
     
      commons-dbcp
     
			
     
      commons-dbcp
     
			
     
      1.4
     
		
    
		
    
			
     
      commons-pool
     
			
     
      commons-pool
     
			
     
      1.4
     
		
    
		
    
		
    
			
     
      commons-logging
     
			
     
      commons-logging-api
     
			
     
      1.1
     
		
    

		
    
			
     
      commons-io
     
			
     
      commons-io
     
			
     
      1.3.2
     
		
    

		
    
		
    
			
     
      net.sf.json-lib
     
			
     
      json-lib
     
			
     
      jdk15
     
			
     
      2.4
     
		
    
		
    
			
     
      commons-beanutils
     
			
     
      commons-beanutils
     
			
     
      1.8.3
     
		
    
		
    
			
     
      commons-collections
     
			
     
      commons-collections
     
			
     
      3.2.1
     
		
    
		
    
			
     
      commons-lang
     
			
     
      commons-lang
     
			
     
      2.6
     
		
    
		
    
			
     
      net.sf.ezmorph
     
			
     
      ezmorph
     
			
     
      1.0.5
     
		
    

		
    
		
    
			
     
      junit
     
			
     
      junit
     
			
     
      4.10
     
			
     
      test
     
		
    

		
    
			
     
      javax.servlet
     
			
     
      servlet-api
     
			
     
      2.5
     
		
    


		
    
		
    
			
     
      org.springframework.security
     
			
     
      spring-security-web
     
			
     
      ${spring.security.version}
     
		
    

		
    
			
     
      org.springframework.security
     
			
     
      spring-security-config
     
			
     
      ${spring.security.version}
     
		
    

		
    
		
    
			
     
      jstl
     
			
     
      jstl
     
			
     
      ${jstl.version}
     
		
    


	
   


	
   
		
    
			
     
				
      
       org.apache.maven.plugins
      
				
      
       maven-compiler-plugin
      
				
      
					
       1.7
					
       
        1.7
       
				
      
				
      
       2.3.2
      
			
     

			
     
				
      
       org.apache.maven.plugins
      
				
      
       maven-surefire-plugin
      
				
      
					
       
        true
       
				
      
				
      
       2.18
      
			
     

		
    
	
   



  

项目目录



b) 配置 SpringMVC 框架

web.xml   文件配置

spring-config.xml

spring-servlet.xml

log4j.xml

spring-security.xml  例子的主要配置文件

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

web.xml 


  

  

	
   
		
    
     webAppRootKey
    
		
    
     webapp.root2
    
	
   

	
   
		
    
     contextConfigLocation
    
		
    
     classpath:spring-config.xml
    
	
   

	
   
		
    
     log4jConfigLocation
    
		
    
     classpath:/log4j.xml
    
	
   
	
   
		
    
     log4jRefreshInterval
    
		
    
     60000
    
	
   


	
   
		
    
     org.springframework.web.context.ContextLoaderListener
    
	
   
	
   
		
    
     org.springframework.web.util.Log4jConfigListener
    
	
   

	
   
		
    
     encodingFilter
    
		
    
     org.springframework.web.filter.CharacterEncodingFilter
    
		
    
			
     
      encoding
     
			
     
      UTF-8
     
		
    
	
   
	
   
		
    
     encodingFilter
    
		
    
     /*
    
	
   

	
   
		
    
     spring
    
		
    
     org.springframework.web.servlet.DispatcherServlet
    
		
    
			
     
      contextConfigLocation
     
			
     
      classpath:spring-servlet.xml
     
		
    
		
    
     1
    
	
   
	
   
		
    
     spring
    
		
    
     /
    
	
   

	
   
	
   
		
    
     springSecurityFilterChain
    
		
    
     org.springframework.web.filter.DelegatingFilterProxy
    
	
   

	
   
		
    
     springSecurityFilterChain
    
		
    
     /*
    
	
   

	
   
		
    
     403
    
		
    
     /403.htm
    
	
   
	
   
		
    
     404
    
		
    
     /404.htm
    
	
   
	
   
		
    
     500
    
		
    
     /500.htm
    
	
   

	
   
		
    
     index.html
    
		
    
     index.htm
    
		
    
     index.jsp
    
		
    
     default.html
    
		
    
     default.htm
    
		
    
     default.jsp
    
	
   

  


spring-config.xml



  

  

	
   

	
   



  

spring-servlet.xml



  

  


	
   
		
    
			
     
				
      
			
     
		
    
	
   

	
   

	
   
		
    
		
    
	
   

	
   


  

log4j.xml



  


  


	
   
		
    
			
     
		
    

		
    
		
    
			
     
			
     
		
    
	
   

	
   
		
    
		
    
			
     
		
    
		
    
			
     
			
     
		
    
		
    
	
   

	
   
		
    
		
    
		
    
			
     
		
    
		
    
			
     
			
     
		
    
		
    
	
   

	
   
		
    
		
    
		
    
			
     
		
    
	
   


	
   
		
    
		
    
		
    
			
     
		
    
	
   

	
   
		
    
		
    
	
   

	
   
		
    
		
    
		
    
		
    
		
    
	
   

  

spring-security.xml



  

	
   
		
    
	
   

	
   
		
    
			
     
				
      
			
     
		
    
	
   


  

c) HelloController 控制层代码 


package com.gavin.test.controller;

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 HelloWorldController {

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

	@RequestMapping(value = "/admin", method = RequestMethod.GET)
	public ModelAndView admin() {

		ModelAndView model = new ModelAndView();
		model.addObject("title", "Admin - Spring Security Hello World");
		model.addObject("message", "This is protected page!");
		model.setViewName("admin");

		return model;

	}

}

b) 发布到TOMCAT 中 ,注意端口号


http://localhost/SpringSecurityDemo/welcome   这个地址为没有权限限制


http://localhost/SpringSecurityDemo/admin       这个地址是有权限限制的 ,访问时会默认跳转到 http://localhost/SpringSecurityDemo/spring_security_login 


这个登录地址是spring security 自带的一个登录地址,可以在配置文件中修改成我们自己的登录地址


这个是一个非常简单的例子可以快速的入门,源码下载地址 https://github.com/zhijun0808/SpringSecurityDemo/


GL!




















  



内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
资 源 简 介 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系, 详 情 说 明 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。 本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系,在此基础上重点分析了一种快速ICA实现算法一FastICA。物质的非线性荧光谱信号可以看成是由多个相互独立的源信号组合成的混合信号,而这些独立的源信号可以看成是光谱的特征信号。为了更好的了解光谱信号的特征,本文利用独立分量分析的思想和方法,提出了利用FastICA算法提取光谱信号的特征的方案,并进行了详细的仿真实验。 此外,我们还进行了进一步的研究,探索了其他可能的ICA应用领域,如音乐信号处理、图像处理以及金融数据分析等。通过在这些领域中的实验和应用,我们发现ICA在提取信号特征、降噪和信号分离等方面具有广泛的潜力和应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值