权限管理:
角色
用户
资源
某个用户拥有多个角色,一个角色也可以被多个用户拥有
一个角色对应访问多个资源,一个资源也可以被多个角色访问
spring security的具体应用如下。
版本:3.0.5
1)web.xml配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter>
<filter-name>httpSessionContextIntegrationFilter</filter-name>
<filter-class>
org.springframework.security.web.context.HttpSessionContextIntegrationFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
2)页面改造
如果要加验证码功能,可以在此fileter前加验证
<form action="${pageContext.request.contextPath}/j_spring_security_check" name="logonActionForm" method="post">
<input type="text" name="j_username" value=""/>
<input type="password" name="j_password" value="" />
</form>
3)spring security 配置
<http auto-config="true" >
<intercept-url pattern="/logon.jsp" filters="none" />
<intercept-url pattern="/logonAction.do" filters="none" />
<intercept-url pattern="/public/logoutSuccess.jsp" filters="none"/>
<intercept-url pattern="/public/**"/>
<intercept-url pattern="/js/**" filters="none" />
<intercept-url pattern="/css/**" filters="none" />
<intercept-url pattern="/images/**" filters="none" />
<intercept-url pattern="/theme/**" filters="none" />
<intercept-url pattern="/**" access="ROLE_AA,ROLE_BB,ROLE_BROWSER" requires-channel="any" />
<form-login login-page="${url.login}"
default-target-url="/logonAction.do"
authentication-failure-url="${url.login}"
login-processing-url="/j_spring_security_check"
/>
<logout invalidate-session="true" logout-url="${url.logoutUrl}" logout-success-url="${url.logoutSuccess}" />
<anonymous />
<session-management invalid-session-url="${url.logoutUrl}" />
</http>
<beans:bean id="userCheckServiceImpl" class="com.sample.UserCheckServiceImpl">
<authentication-manager>
<!--编程方式获得用户权限-->
<authentication-provider user-service-ref='userCheckServiceImpl'/>
<!--固定用户名密码方式-->
<authentication-provider>
<password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder>
<user-service>
<user name="aatest" password="aatest" authorities="ROLE_AA" />
<user name="admin" password="admin" authorities="ROLE_BROWSER,ROLE_BB,ROLE_AA" />
</user-service>
</authentication-provider>
</authentication-manager>
<global-method-security>
<protect-pointcut expression="execution(* com.sample.exec(..))" access="ROLE_PA" />
<protect-pointcut expression="execution(* com.sample.read(..))" access="ROLE_CA,ROLE_PA,ROLE_BROWSER" />
</global-method-security>
//编程方式校验用户
public class UserCheckServiceImpl implements UserDetailsService {
public UserDetails loadUserByUsername(String userName)
throws UsernameNotFoundException, DataAccessException {
//MockDao
if(!userName.equals("aatest")){
return null;
}
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new GrantedAuthorityImpl("ROLE_AA"));
UserDetails userDetails = new User("aatest", "aatest", true, true,
true, true, authorities);
return userDetails;
}
}
//验证后得到用户信息
SecurityContext ctx =SecurityContextHolder.getContext();
ctx = (SecurityContext) request.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
Authentication auth = ctx.getAuthentication();
Object principal = auth.getPrincipal();
UserDetails user = null;
if(principal instanceof UserDetails){
user = (UserDetails)principal;
}
分享到:
相关推荐
通过这个Spring Security实战例子,你可以深入了解Spring Security的配置、认证和授权机制,以及如何与数据库集成。实践是最好的老师,动手完成这四个小项目将有助于巩固理解,并为你在实际项目中应用Spring ...
通过这个实战项目,你可以加深对SpringSecurity工作原理的理解,同时掌握如何在SpringBoot应用中有效地实施安全控制。实践中遇到问题时,可以查阅SpringSecurity官方文档、相关教程或者在线社区寻找答案。祝你学习...
这三份资料——"实战Spring Security 3.x.pdf"、"Spring Security 3.pdf" 和 "Spring Security使用手册.pdf" 将深入探讨这些概念,并提供实践指导,帮助读者掌握如何在实际项目中应用Spring Security。通过学习这些...
Spring Security 是一个强大的安全框架,用于为Java应用提供全面的安全管理解决方案。它是Spring生态系统的组成部分,专注于身份验证、授权和访问控制。Spring Security的核心特性包括: 1. **身份验证...
### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的安全性受到了前所未有的关注。为了应对这些挑战,Spring Security 应运而生,成为了一个非常重要...
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,...
综上所述,这两份SpringSecurity的中文文档是学习和掌握SpringSecurity的宝贵资料,它们将覆盖从基础概念到高级特性的全方位讲解,无论是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,开发者能够...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于 Java 的应用程序。本教程将逐步引导你理解并使用 Spring Security 进行安全控制。以下是对关键知识点的详细说明: 1. **Spring ...
在本项目中,我们主要探讨的是如何将Java与Spring Boot框架相结合,利用JWT(JSON Web Token)和Spring Security来构建一个安全的Web应用程序。这个实战项目涵盖了从基础概念到实际应用的完整流程,旨在帮助开发者...
学习这门课程,开发者将不仅理解Spring Security和OAuth2的基本原理,还能掌握如何在实际项目中灵活运用,从而提高企业级应用的安全性和可靠性。对于任何希望提升安全技能的Java开发者来说,这是一份不可多得的学习...
阅读这份文档,可以了解到Spring Security的架构设计、配置方法以及实战案例。而"Spring Security 3.1.zip"文件可能包含了示例代码或额外的教程资源,用于辅助学习和实践。 总结,Spring Security 3.1作为一款强大...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护Java应用程序。这个"狂神spring-security静态资源.zip"文件很可能包含了Spring Security的相关教程、代码示例或配置文件,帮助用户理解...
Spring Security 是一个强大的Java安全框架,它为Spring应用程序提供了全面的安全解决方案。该框架的主要目标是保护Web应用程序,包括身份验证、授权以及会话管理。在"Spring Security 3.1 随书源代码"中,我们可以...
Spring Security 是一个强大的Java安全框架,用于保护基于Spring的应用程序。在Spring Security 3版本中,这个框架提供了全面的身份验证、授权和访问控制机制,帮助开发者构建安全的Web应用程序。本资源包含Spring ...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,广泛应用于Java企业级应用中。在Spring Security 3.1版本中,它提供了一套全面的安全解决方案,涵盖了从用户认证到权限控制等多个层面。本文将...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web和企业级应用程序提供了全面的身份验证、授权和访问控制功能。在这个“Spring Security Maven 示例”中,我们可以通过官方提供的Maven...
通过这个简单的 Spring Security 实战项目,新手可以快速了解如何在实际应用中配置和使用 Spring Security,逐步掌握安全框架的核心概念。随着经验的积累,你可以进一步研究更高级的主题,如 OAuth2、CSRF 防护、XSS...
**Spring Security 2 中文参考文档** Spring Security是一款强大的安全框架,主要用于Java应用...无论你是初学者还是经验丰富的开发人员,都可以从中获得宝贵的指导,以确保你的应用程序具备坚实的 security 基础。
Spring Security是Spring生态系统中的核心组件之一,它提供了一套全面的安全管理框架,用于保护Web应用和企业级服务的安全性。这本书详细阐述了Spring Security的功能、设计原则以及实际应用。 首先,Spring ...