- 浏览: 853564 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
package com.hd.security.service; |
002 |
003 |
import java.io.File; |
004 |
import java.util.HashMap; |
005 |
import java.util.Iterator; |
006 |
import java.util.List; |
007 |
import java.util.Map; |
008 |
import java.util.Set; |
009 |
010 |
import javax.annotation.Resource; |
011 |
012 |
import org.dom4j.Document; |
013 |
import org.dom4j.DocumentException; |
014 |
import org.dom4j.Element; |
015 |
import org.dom4j.io.SAXReader; |
016 |
import org.hibernate.SessionFactory; |
017 |
import org.springframework.dao.DataAccessException; |
018 |
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; |
019 |
import org.springframework.security.userdetails.UserDetails; |
020 |
import org.springframework.security.userdetails.UserDetailsService; |
021 |
import org.springframework.security.userdetails.UsernameNotFoundException; |
022 |
import org.springframework.stereotype.Repository; |
023 |
024 |
import com.hd.comm.constants.Authtype; |
025 |
import com.hd.comm.constants.EncodeType; |
026 |
import com.hd.comm.constants.XmlAssistType; |
027 |
import com.hd.department.model.Authorities; |
028 |
import com.hd.department.model.Role; |
029 |
import com.hd.department.model.User; |
030 |
import com.hd.security.core.SecurityManager; |
031 |
import com.hd.util.SecurityAssist; |
032 |
import com.hd.util.SystemAssist; |
033 |
import com.hd.util.XmlAssist; |
034 |
035 |
@Repository ( "securityManager" ) |
036 |
public class SecurityManagerImpl extends HibernateDaoSupport implements UserDetailsService ,SecurityManager{ |
037 |
038 |
@Resource (name= "sf" ) |
039 |
public void setSuperSessionFactory(SessionFactory sessionFactory) { |
040 |
super .setSessionFactory(sessionFactory); |
041 |
} |
042 |
/** |
043 |
* 得到用户通过用户的CODE |
044 |
*/ |
045 |
@SuppressWarnings ( "unchecked" ) |
046 |
@Override |
047 |
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { |
048 |
|
049 |
List<User> users = getHibernateTemplate().find( "FROM syuser WHERE username = ? AND disabled = " + false , username);
|
050 |
if (users.isEmpty()) {
|
051 |
System.out.println( "User is not exist" ); |
052 |
throw new UsernameNotFoundException( "User " + username + " 没有相应的权限" );
|
053 |
} |
054 |
User user = users.get( 0 ); |
055 |
user.getAuthorities(); |
056 |
Set<Role> roles = user.getRoles(); |
057 |
for (Role role : roles){ |
058 |
System.out.println( "装在用户[" +user.getChineseName()+ "]角色 [" +role.getRoleName()+ "]权限集合" +role.getAuthorities()); |
059 |
} |
060 |
//创建用户菜单 |
061 |
createUserMenu(user); |
062 |
return user ; |
063 |
} |
064 |
/** |
065 |
* 得到是有URL资源 |
066 |
*/ |
067 |
@Override |
068 |
public Map<String, String> loadUrlAuthorities() { |
069 |
Map<String, String> urlAuthorities = new HashMap<String, String>();
|
070 |
@SuppressWarnings ( "unchecked" ) |
071 |
List<Authorities> urlResources = getHibernateTemplate().find( "FROM Authorities WHERE authtype = ?" , Authtype.URL);
|
072 |
for (Authorities resource : urlResources) {
|
073 |
urlAuthorities.put(resource.getAuthCode(), resource.getAuthValue());
|
074 |
}
|
075 |
return urlAuthorities;
|
076 |
} |
077 |
@SuppressWarnings ( "rawtypes" ) |
078 |
@Override |
079 |
public void createUserMenu(User user) { |
080 |
try { |
081 |
//装在MENU总文件准备筛选 |
082 |
SAXReader reader = new SAXReader(); |
083 |
Document allMenuDoc = reader.read( new File(SystemAssist.getSysRootPath()+XmlAssistType.SYSALLMENU.showInfo)); |
084 |
String path = SystemAssist.getSysRootPath()+XmlAssistType.USERMENU.showInfo+user.getUsername()+ "-menu.xml" ; |
085 |
if (! "admin" .equals(user.getUsername())){ |
086 |
Authtype[] authtypes = new Authtype[ 1 ]; |
087 |
authtypes[ 0 ] = Authtype.MENU; |
088 |
Set<Authorities> authorities = SecurityAssist.getCurrentUserAuth(authtypes,user); |
089 |
List list = allMenuDoc.selectNodes( "//*[@id]" ); |
090 |
Iterator it = list.iterator();
|
091 |
while (it.hasNext()) {
|
092 |
Element elt = (Element)it.next(); |
093 |
boolean boo = false ; |
094 |
for (Authorities auth : authorities){ |
095 |
if (elt.attribute( "id" ).getValue().equals(auth.getAuthValue())){ |
096 |
boo = true ; |
097 |
} |
098 |
} |
099 |
if (!boo){ |
100 |
elt.detach();
|
101 |
} |
102 |
} |
103 |
XmlAssist.createXML(allMenuDoc, EncodeType.UTF8.showInfo, path); |
104 |
} else { |
105 |
XmlAssist.createXML(allMenuDoc, EncodeType.UTF8.showInfo, path); |
106 |
} |
107 |
} catch (DocumentException e) { |
108 |
System.out.println(e); |
109 |
}
|
110 |
} |
111 |
- spring_security3-开发指南-实例.zip (72.3 KB)
- 下载次数: 4
发表评论
-
Spring事务的传播行为和隔离级别
2015-01-23 09:15 602Spring事务的传播行为和隔离级别[transaction ... -
Spring3.2.8+Mybatis3.2.6+Maven 整合配置
2015-01-06 14:01 1442 -
采用AOP+log4j记录项目日志
2014-10-28 16:39 491关于AOP,我之前对AOP ... -
Spring Security3.1实践
2014-05-07 14:45 1015说明下: 本篇博客时间久远,数 ... -
SpringMVC3.0+MyIbatis3.0(分页示例)
2013-10-30 17:24 2225参考资料 1 ibatis2.x与mybatis ... -
网上的一篇spring security详解教程,觉得不错,转过来了
2013-07-30 22:16 1356先来谈一谈Acegi的基础知识,Acegi的架构比较复杂,但 ... -
Spring Security3配置使用
2013-07-30 16:48 3496使用Spring Security3的 ... -
SSH项目中加入spring security(二)--加入自定义数据表
2013-07-30 13:32 1026上一篇中基本的spring security已经加入到项 ... -
SSH项目中加入spring security(一)
2013-07-30 13:30 1577很久没有写过博客了,最近项目中 ... -
Spring定时任务的几种实现
2013-01-22 18:27 855近日项目开发中需要执行一些定时任务,比如需要在 ... -
spring security权限管理手册升级至spring security-3.1.3
2012-12-08 12:57 1966企业应用 费了半天劲,终于把原来基于spri ... -
在Spring、Hibernate中使用Ehcache缓存
2012-11-02 21:49 924前一篇http://www.blogjava.n ... -
不重复配置——利用Spring通用化配置
2012-10-17 09:40 981还记得 如下这种配置吗: 1、struts2作用域 ... -
Ehcache 整合Spring 使用页面、对象缓存
2012-10-16 09:44 789Ehcache在很多项目中都出现过,用法也比较简单。一般的 ... -
Spring AOP 中的通知
2012-09-16 13:32 12382010-08-29 16:54:18| ... -
Spring Security3十五日研究
2012-09-12 10:22 1956前言 南朝《述 ... -
Spring MVC和Struts2的区别
2012-09-08 08:59 10371. 机制:spring mvc的入口是servlet,而st ... -
跟我学spring3.0 电子书
2012-08-30 13:13 1232好东西 收藏!学习! -
Spring Bean Scope 有状态的Bean 无状态的Bean
2012-08-30 08:58 2488在Spring的Bean配置中 ... -
Spring的初始化过程
2012-06-14 13:54 1204Spring 的几个接口 1.InitializingB ...
相关推荐
在版本2.5时,Spring Security已经是一个成熟且功能丰富的安全框架,为开发者提供了一套强大的工具来管理用户的登录、权限控制以及会话管理。 在"spring security2.5 jar"中,包含了Spring Security框架的核心类和...
Apache CXF和Spring提供了丰富的扩展点,可以集成如Spring Security来控制访问权限,使用Spring AOP来处理事务,以及通过CXF的拦截器机制来实现自定义的日志、验证等功能。 总结来说,Apache CXF 2与Spring 2.5的...
- Spring Security 的验证机制允许开发者自定义认证过程,包括用户凭证的检查和存储。 - **直接设置 SecurityContextHolder 的内容**:允许在特定情况下直接设置用户的 Authentication 信息,从而绕过常规的身份...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它提供了许多功能,包括登录表单、记住我功能、多身份验证器、基于注解的安全配置、CSRF 防护、OAuth2 客户端和服务端支持等。Spring Security ...
1. **Authentication**(认证):Spring Security的核心组件之一是Authentication,它负责验证用户身份。在`org.springframework.security.authentication`包下,有多种认证机制,如...
在这个项目中,使用的是Struts2.3.8、Spring2.5和Hibernate3版本,这些都是相对早期但仍然广泛使用的组件。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它增强了Struts1的功能,...
- **Spring Security 的验证机制**:描述了 Spring Security 如何进行用户认证。 - **直接设置 SecurityContextHolder 的内容**:绕过正常的认证流程,直接设置认证信息。 ##### 5.4 在 Web 应用中验证 - **...
- **定义:** Spring Security 是一个强大的且高度可定制的身份验证和授权框架。它提供的功能包括认证、授权、会话管理和CSRF保护等。 - **特点:** - **灵活性高:** 支持多种认证方式,如表单登录、HTTP Basic、...
Spring Security是Spring框架的一部分,它为Web和非Web应用程序提供了全面的安全服务,包括身份验证(authentication)、授权(authorization)、会话管理等。它是基于Java的安全框架,旨在简化安全配置,同时保持...
### Spring Security 3.0权限问题相关知识点 #### 一、Spring Security简介 **1.1 Spring Security 是什么?** Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架。它为Java应用提供了声明式的...
总结,securityfilter-spring作为Spring Security在Spring 2.5环境下的实现,为企业级应用提供了全面的安全解决方案。通过XML配置,开发者可以灵活地定制安全策略,确保应用在处理敏感数据时的安全性。随着Spring...
### Spring Security 3.0.1 官方文档解析 #### 一、Spring Security 概览 ##### 1.1 Spring Security 是什么? Spring Security 是一个功能强大的安全框架,为基于 Java 的应用程序提供了全面的安全解决方案。它...
例如,对于大型项目,可能还需要考虑Spring Security或Acegi进行权限控制,或者使用Quartz进行定时任务等。 通过学习和实践SSH整合,开发者可以掌握Java Web开发中的核心技术,为构建高效、稳定的企业级应用打下...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它为 Java 应用程序提供了全面的安全服务,包括认证、授权、会话管理等。Spring Security 能够与任何基于 Java 的应用程序无缝集成,并且它支持...
Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。Spring Security 3.1 版本提供了多种不同的配置方式来满足不同场景下的安全需求。 根据文档提供的内容,Spring Security 3.1 的使用方法主要...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它为应用程序提供了一种机制来保护自身免受未经授权的访问,并且能够控制对应用程序中的特定功能或数据的访问。Spring Security 的核心目标是为...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它是Spring项目的一个子项目,主要用来简化Java应用程序中的安全配置过程。Spring Security 提供了一套完整的解决方案来解决Web应用程序和普通...