Spring Security(Spring安全框架)入门理解

来源:互联网 发布:组合软件 编辑:程序博客网 时间:2024/06/03 18:45

          Security 使用场景:不同用户不同操作。如:企业员工管理系统。

          Spring Security 框架,完全基于servlet过滤器标准,这个框架内部没有使用任何框架做基础,他只是管理HttpServletRequest和HttpServletResponse,不用关心请求来之什么浏览器或者Ajax。Security 已启动就包含一批负责安全管理的过滤器。

          Web 应用的安全性包括用户认证和用户授权两部分,用户验证指的是可不可以访问本系统,需要提供账号密码,由系统来完成这个认证。用户授权指的是用户是否有权利执行某个操作。

          下面使用的是 spring restful + My batis

          添加一个过滤器,放到其它过滤器前面。Security 使用的是Servlet规范中标准的过滤器机制。过滤器是链条的方式来过滤。

    <filter>          <filter-name>springSecurityFilterChain</filter-name>          <filter-class>              org.springframework.web.filter.DelegatingFilterProxy           </filter-class>      </filter>    <filter-mapping>          <filter-name>springSecurityFilterChain</filter-name>          <url-pattern>/*</url-pattern>      </filter-mapping>
        

          用户相关信息通过UserDetailsService 接口来加载的,该接口有一个唯一方法loadUserByUsername 用来加载相关信息,返回类型UserDetails。(Spring提供的有JdbcDaoImpl类来支持从数据库中加载用户信息,开发人员需要该类兼容的数据库表结构,就不需要任何改动,而直接使用该类) 我们用My Batis 连接数据库。

         

<bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:database.properties</value></list></property></bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driver}" /><property name="url"value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></bean>  <context:annotation-config /><context:component-scan base-package="com.*" /><tx:annotation-driven /><!-- 事务管理器 --> <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>  <!-- 创建SqlSessionFactory -->  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="typeAliasesPackage" value="com.entity" /> <property name="mapperLocations" value="classpath*:com/mapper/*.xml"/> </bean> <!-- 自动扫描映射器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.mapper" /></bean>  <!-- 注入 -->  <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory" /><constructor-arg index="1" value="BATCH" /> </bean> 

          配置URL模式访问权(Spring Security 2.0 和 3.0 配置有些差别,你需要注意)

        <security:intercept-url pattern="/hello*" access="hasRole('ROLE_ADMIN','ROLE_USER')"/><security:intercept-url pattern="/auth/login" access="permitAll"/><security:intercept-url pattern="/main/admin" access="hasRole('ROLE_ADMIN')"/><security:intercept-url pattern="/main/common" access="hasRole('ROLE_USER')"/>
          hashRole这种格式 3.0以后有的,ROLE_* 这种验证时规定好的,后面的 用户名,你需要在方法中定义
         

          上面说那么多主要就是脑袋里有个概念,下面是 案例,和 入门文档

          http://download.csdn.net/detail/uniquelike/7633989

         

         

         

         


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝喝了有活虫的奶粉怎么办 淘宝商家店铺状态异常怎么办 淘宝购物提示买家信息错误怎么办 苹果淘宝占用空间大怎么办 苹果手机淘宝占内存太大怎么办 苹果手机淘宝图标找不到了怎么办 苹果手机看淘宝很卡怎么办 苹果手机淘宝忘了密码怎么办 苹果手机更新后淘宝打不开怎么办 淘宝买到苹果翻新机怎么办 淘宝网密码忘了怎么办 淘宝改密码要拍摄脸部怎么办 苹果一体机键盘没反应怎么办 淘宝买东西退货卖家拒绝怎么办? 淘宝被限制下单怎么办 淘宝扫码登录后怎么办 花呗选项被隐藏怎么办 新换手机支付宝怎么办 ih5点击按钮跳转页面怎么办 sap点安装程序没反应怎么办 淘宝店账号忘了怎么办 点击电脑桌面图标没反应怎么办 为什么淘宝打不开已停止运行怎么办 移动宽带打不开淘宝网怎么办 淘宝发布宝贝没有品牌怎么办 烫了卷发显老怎么办 唯品会商品不支持退换货怎么办 京东没有自提怎么办 不支持七天无理由的商品怎么办 淘宝评价忘记点亮星星怎么办 淘宝宝贝权重降低了该怎么办 换卡支付宝账号怎么办 支付宝免密支付无法关闭怎么办 手机换了支付宝怎么办 支付宝版本过低怎么办 支付宝无故扣钱怎么办 支付宝里面的钱不见了怎么办 支付宝还不起钱怎么办 支付宝借不到钱怎么办 买家淘宝号被监控了怎么办 卖微信号被骗了怎么办