`
erichua
  • 浏览: 516583 次
  • 性别: Icon_minigender_2
  • 来自: 远方
社区版块
存档分类
最新评论

Spring Security读书笔记--Security Annotation的使用

阅读更多

一直都是使用xml设置的方法进行method的权限控制。试着给manger的方法加@secured怎么试都不行。突然发现忘了设置annotation,记录一下。

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
              http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">

	<http auto-config="true" lowercase-comparisons="false">
		<!--
			<intercept-url pattern="/**/*.html*" access="ROLE_ADMIN,ROLE_USER"/>
		-->
		<intercept-url pattern="/**/*.htm" access="ROLE_USER,ROLE_ADMIN" />
		<intercept-url pattern="/WEB-INF/jsp/*.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
		<form-login login-page="/login.jsp"
			authentication-failure-url="/login.jsp?error=true"
			login-processing-url="/j_security_check" />
		<logout logout-url="/logout.jsp" invalidate-session="true" />
		<remember-me key="e37f4b31-0c45-11dd-bd0b-0800200c9a66" />
	</http>
	<!--
		<authentication-provider> <password-encoder hash="sha" />
		<user-service> <user name="user"
		password="12dea96fec20593566ab75692c9949596833adc9"
		authorities="ROLE_USER" /> <user name="admin"
		password="d033e22ae348aeb5660fc2140aec35850c4da997"
		authorities="ROLE_ADMIN" /> </user-service> </authentication-provider>
	-->
	<authentication-provider user-service-ref="userDetailService">
		<password-encoder ref="passwordEncoder" />
	</authentication-provider>

	<!--Golbal method auto annotation is set -->
	<global-method-security secured-annotations="enabled"
		jsr250-annotations="enabled">
		<protect-pointcut
			expression="execution(*
		*..service.UserManager.removeUser(..))"
			access="ROLE_ADMIN" />
	</global-method-security>


</beans:beans>

 红色部分就是,气死我了。

使用用法

 一个权限 Secured ({"ROLE_USER"})

多个权限 ({"ROLE_USER", "ROLE_ADMIN"})

不知道能不能支持级联权限

 

@Secured({"ROLE_ADMIN"})
	public void saveUser(User user) throws Exception {

		if (user.getVersion() == null) {
			// if new user, lowercase userId
			user.setUsername(user.getUsername().toLowerCase());
		}
 

2
0
分享到:
评论
4 楼 bluerose 2011-03-03  
不知道能不能把@Secured加在controller层 我试了无效
我觉得能加在controller里更直观  因为每个controller里的方法就是一个功能点
3 楼 ncfreespy 2010-10-09  
2 楼 erichua 2008-12-10  
是的。在service level 调用方法的时候invoke对应方法。
1 楼 theabab 2008-12-09  
你的是从web访问过来,然后调用方法的时候在判别有权限调用吗?能发代码给我吗?theabab@163.com,谢谢。

相关推荐

    Spring Security学习笔记(一)

    以上就是Spring Security 学习笔记的第一部分,涵盖了Spring Security的基本使用和内存认证配置。后续的学习中,你将接触到更高级的主题,如自定义认证提供者、权限控制、OAuth2集成等。继续深入学习,你将能够构建...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    例如,使用`&lt;mvc:annotation-driven&gt;`元素可以启用注解驱动的开发,使得@Controller、@RequestMapping等注解生效。 接下来,详细讲解Spring MVC的核心组件: 1. **Controller**:通过@Controller注解标识的类,...

    spring学习文档及源码笔记

    - XML 配置:传统的配置方式,通过 `&lt;mvc:annotation-driven&gt;`、`&lt;bean&gt;` 等元素定义组件。 - Java 配置:使用 `@EnableWebMvc` 和 `WebMvcConfigurer` 接口进行配置。 5. **数据绑定与验证** - 数据绑定:...

    spring教程,spring入门

    Spring框架是Java开发中的一个核心框架,以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP...通过Spring教程和笔记,你可以深入理解并运用这些知识,提升你的Java开发能力。

    Spring3 MVC 学习笔记 入门

    5. **与 Spring 生态系统的集成**:可以轻松与其他 Spring 组件集成,如 Spring Security 等。 #### 五、总结 通过以上介绍,我们了解到 Spring MVC 的基本概念、工作流程以及一个简单的示例。Spring MVC 是一个...

    spring笔记

    此外,Spring还提供了一系列扩展模块,如Spring MVC、Spring Data、Spring Security等,覆盖了Web开发的各个方面。 **Spring的使用步骤**: 1. **加入Spring支持**:首先确保项目中包含了Spring的相关JAR包。 2. **...

    springboot学习笔记

    - 特征:随着 JDK 1.5 引入了注解(Annotation)支持,Spring 2.x 开始支持使用注解来替代部分 XML 配置。 - 优势:大幅减少了 XML 配置量,使得代码更加简洁。 - 实践建议:推荐将基础配置(如数据源、资源文件...

    Java框架部分SSM笔记

    &lt;tx:annotation-driven transaction-manager="transactionManager"/&gt; ``` - **注解配置**: ```java @Transactional public void doSomething() { // 业务逻辑 } ``` #### SpringMVC框架 **SpringMVC**是...

    初学ssh整合项目笔记

    在Annotation方式下,开发者不再需要XML配置文件来定义bean及其依赖关系,而是直接在类上使用注解(如@Service、@Repository、@Controller等)来声明其角色和依赖。这样提高了代码的可读性和开发效率。 Struts2是...

    SpringMVC学习学习笔记

    你可以通过实现`org.springframework.web.bind.annotation.RequestMapping`注解的接口或直接使用带有该注解的方法来创建控制器。控制器方法接收请求,处理业务逻辑,并返回模型数据到视图。 1.1.6 启动测试 完成...

    CXF的学习笔记

    CXF 包含了大量的功能特性,但是主要集中在以下几个方面: 支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。...

    swagger自学项目笔记

    1. **Swagger Annotation(注解)**:Swagger2通过Java注解的方式,将API的元数据嵌入到代码中。例如,`@Api`用于标记控制器类,表示这是一个API资源;`@ApiOperation`用于标记具体的方法,描述该操作的作用;`@...

Global site tag (gtag.js) - Google Analytics