Spring Security简明实践及相关国际化处理

别人的都是最佳实践,因为我目前的设置没有按照参考文档推荐,还是采用DelegatingFilterProxy,所以我只能说简明实践。先贴我的applicationContext-security.xml

<?xml version="1.0" encoding="UTF-8"?>  

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/<a href="http://lib.csdn.net/base/javaee" class=‘replace_word‘ title="Java EE知识库" target=‘_blank‘ style=‘color:#df3434; font-weight:bold;‘>spring</a>-beans-2.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
    <global-method-security secured-annotations="enabled">
    </global-method-security>
    <http auto-config="true">  

        <!-- intercept-url pattern="/**" filters="none" /-->
        <intercept-url pattern="/login.jsp*" filters="none"/>
        <intercept-url pattern="/common/pages/**" access="IS_AUTHENTICATED_REMEMBERED" />
        <intercept-url pattern="/common/**" filters="none" />
        <intercept-url pattern="/secure/extreme/**" access="ROLE_SUPERVISOR"/>
        <intercept-url pattern="/secure/**" access="IS_AUTHENTICATED_REMEMBERED" />
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBERED" />  

        <form-login login-page=‘/login.jsp‘ authentication-failure-url="/login.jsp?login_error=1" default-target-url=‘/index.jsp‘ />  

    </http>
    <authentication-provider>
        <jdbc-user-service data-source-ref="dataSource"
        group-authorities-by-username-query="select U.username,G.group_name,GA.authority  as ‘authority‘ from users U join group_members  GM on U.username=GM.username join groups G on GM.group_id=G.id join group_authorities GA on G.id=GA.group_id where  U.username=?"
        />  

        <password-encoder hash="plaintext"/>
    </authentication-provider>
</beans:beans> 

对上面的配置说明一下,form-login的authentication-failure-url和default-target-url属性设置基本就可以免去使用ExceptionTranslationFilter的麻烦,authentication-provider使用上面这个配置方式是最方便可用的,至于因为我的数据库建立在sql Server上,所以添加了group-authorities-by-username-query属性,password-encoder我个人建议采用参考文档上推荐的以username做salt的sha编码,我这儿使用plaintext,是因为我这个项目目前还在开发测试阶段,用户管理这个模块还没有完全建立,所以为了测试的方便,用了plaintext的编码。那个dataSource,我是按照API文档推荐,建立了一个容器JNDI,然后在spring里用JndiObjectFactoryBean代理了一下。

用户管理的设施代码采用以JdbcUserDetailsManager为主,jdbcTemplate为辅的方式,其中前者不要建立在springContext下面,否则会导致多userDetailService冲突。

下面说一下spring Security国际化(i18N)的配置处理,先贴代码:

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="/WEB-INF/ssm"/>
    </bean>
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"/>  

注意了:我上面的bean定义不在applicationContext-security.xml里面,而是在一个以beans作为默认命名空间的applicationContext-beans.xml里面,我说一下上面这个配置做的时候出现的问题,其中的basename的value,我刚开始采用开发指南上说的"org/springframework/security/messages",可是始终找不到jar包里面的messages文件,后来,我看了一个老外的同问题贴,他采用上面这种方式,把messages文件放在了/WEB-INF/下面,反正这种配置方式下,messages文件终于可以找到,i18N可以正常运行了,至于那个messages文件,还是从jar包里面解压出来的东西。

时间: 2024-10-29 19:11:18

Spring Security简明实践及相关国际化处理的相关文章

Spring Security教程(5)---- 国际化配置及UserCache

这一章是为了给后面的讲解打基础的,主要介绍下国际化的配置及UserCache的配置及使用 国际化配置 [html] view plain copy <!-- 定义上下文返回的消息的国际化 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name

Spring Security 入门详解

序:本文主要参考 spring实战 对里面的知识做一个梳理 1.Spring Security介绍 Spring Security是基于spring的应用程序提供声明式安全保护的安全性框架,它提供了完整的安全性解决方案,能够在web请求级别和方法调用级别处理身份证验证和授权.它充分使用了依赖注入和面向切面的技术. Spring security主要是从两个方面解决安全性问题: web请求级别:使用servlet过滤器保护web请求并限制URL级别的访问 方法调用级别:使用Spring AOP保护

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈开发企业级认证与授权网盘地址:https://pan.baidu.com/s/1mj8u6JQ 密码: 92rp备用地址(腾讯微云):https://share.weiyun.com/8b2ffc1839069b4399950333860754a4 密码:a539tn 第1章 课程导学介绍课程内容.课程特点,使用的主要技术栈,以及学习课程所需的前置知识 第2章 开始开发安装开发工具,介绍项目代码结构并搭建,基本的依赖和参数设置,开发hello world 第3

Spring Security 与 OAuth2(介绍)

https://www.jianshu.com/p/68f22f9a00ee Spring Security 与 OAuth2(介绍) 林塬 2018.01.23 11:14* 字数 3097 阅读 3660评论 1喜欢 6 个人 OAuth2 全部文章 Spring Security 与 OAuth2(介绍):https://www.jianshu.com/p/68f22f9a00ee Spring Security 与 OAuth2(授权服务器):https://www.jianshu.co

Spring Security 与 OAuth2 介绍

个人 OAuth2 全部文章 Spring Security 与 OAuth2(介绍):https://www.jianshu.com/p/68f22f9a00ee Spring Security 与 OAuth2(授权服务器):https://www.jianshu.com/p/227f7e7503cb Spring Security 与 OAuth2(资源服务器):https://www.jianshu.com/p/6dd03375224d Spring Security 与 OAuth2(

(一)关于spring security的简要介绍以及相关配置和jar包认识

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

Spring Security应用开发(11) 并发控制之实践

本文分别介绍了四种不同情况下,Spring Security的Session管理和并发控制的不同配置的配置方法,以及所产生的效果. (1)首先编写了session_error.jsp页面,用于展示session相关错误信息. 错误信息通过页面参数id传入. <p>Session Error:${param.id }</p> <p>${SPRING_SECURITY_LAST_EXCEPTION.message}</p> (2)编写相应的SessionCont

S - Spring Security 相关资料索引贴

Spring Security 官方文档:http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/ stackoverflow 关于自定义Filter:http://stackoverflow.com/questions/19500332/spring-security-and-json-authentication

[转]Spring Security 可动态授权RBAC权限模块实践

RBAC:基于角色的访问控制(Role-Based Access Control) 先在web.xml 中配置一个过滤器(必须在Struts的过滤器之前) [html] view plaincopy <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy<