博客
关于我
Spring security安全框架的使用
阅读量:598 次
发布时间:2019-03-12

本文共 3058 字,大约阅读时间需要 10 分钟。

Maven项目入门案例:Spring Security集成与应用实践

一、创建一个Maven工程

在本地工作环境中新建一个Maven项目,完成以下步骤:

  • 导入pom.xml模板:选择Web项目,网络环境模板。
  • 4.0.0
    com.offcn
    spring_security_demo
    1.0-SNAPSHOT
    war
    3.0
    <spring.version>4.2.5.RELEASE</spring.version>
    org.springframework
    spring-core
    ${spring.version}
    org.springframework
    spring-web
    ${spring.version}
    org.springframework
    spring-webmvc
    ${spring.version}
    org.springframework
    spring-context-support
    ${spring.version}
    org.springframework
    spring-test
    ${spring.version}
    org.springframework
    spring-jdbc
    ${spring.version}
    org.springframework.security
    spring-security-web
    4.1.0.RELEASE
    org.springframework.security
    spring-security-config
    4.1.0.RELEASE
    javax.servlet
    servlet-api
    2.5
    provided
    org.apache.tomcat.maven
    tomcat7-maven-plugin
    9090
    /

    2. **配置web.xml布局文件**:新建或修改`src/webapp/WEB-INF/web.xml`。```xml
    contextConfigLocation
    classpath:spring/application_security.xml
    org.springframework.web.context.ContextLoaderListener
    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFilterProxy
    springSecurityFilterChain
    /*

    二、配置Spring Security

  • 创建application_security.xml文件:放在src/main/resources/templates/目录下。
    1. 编写登录页面login.html:放在src/main/resources/templates/下。
    2.     Login Page    

      Login

      用户名:
      密码:
      1. 集成Spring Security

        web.xml中添加过滤器:

      2. springSecurityFilterChain
        org.springframework.web.filter.DelegatingFilterProxy
        1. 实现自定义认证:创建自定义UserDetailsService类。
        2. package com.offcn.service;import org.springframework.security.core.authority.SimpleGrantedAuthority;import org.springframework.security.core.userdetails.User;import org.springframework.security.core.userdetails.UserDetailsService;import org.springframework.security.core.userdetails.UsernameNotFoundException;import java.util.ArrayList;import java.util.List;public class UserDetailsServiceImpl implements UserDetailsService {    @Override    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {        List
          authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority("ROLE_管理员")); return new User(username, "password", authorities); }}
          1. 分步配置与实现

            • 添加依赖:确保项目中包含Spring Security相关jar包。
            • 配置安全管理器:在application_security.xml中配置认证管理器,引入自定义用户服务。
            • 实现接口:创建UserDetailsService类,配置认证逻辑。
            • 修改默认登录页面:优化login.html,提升用户体验。
            • 测试注销功能:配置logout URL和处理逻辑。

          2. 三、综合实践

            1. 创建完整的登录系统架构图

            架构:Spring Boot → Spring MVC → Spring Security → DB认证类型:Username-Password

            2. 注意事项

            • 依赖管理:确保所有依赖版本兼容。
            • 认证管理器:配置正确引入自定义UserDetailsService。
            • 日志配置:添加logging以便调试和错误处理。
            • 权限管理:根据需要添加角色和权限配置。

            通过以上配置,您已经完成了一个基本的Spring Security入门案例。如果需要更深入的功能扩展,请参考Spring Security官方文档或相关博客资料。

    转载地址:http://tobxz.baihongyu.com/

    你可能感兴趣的文章
    pfsense关闭nat
    查看>>
    PFX(Parallel Framework) and Traditional Multithreading
    查看>>
    PGOS:今天动手给电脑装青苹果Win7 X64位系统
    查看>>
    pgpool-II3.1 的内存泄漏(一)
    查看>>
    PgSQL · 特性分析 · PG主备流复制机制
    查看>>
    PGSQL主键序列
    查看>>
    PGSQL安装PostGIS扩展模块
    查看>>
    pg数据库中两个字段相除
    查看>>
    PhalApi:[1.23] 请求和响应:GET和POST两者皆可得及超越JSON格式返回
    查看>>
    Phalcon环境搭建与项目开发
    查看>>
    Phantom.js维护者退出,项目的未来成疑
    查看>>
    Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容
    查看>>
    Phaser性能测试加强版
    查看>>
    phoenix 开发API系列(一)创建简单的http api
    查看>>
    Phoenix 查看表信息及修改元数据
    查看>>
    phoenixframework集成了所有自动化测试的思想的平台。mark一下。
    查看>>
    phoenix_执行sql报错_Error: ERROR 504 (42703): Undefined column. columnName=(state=4270_大数据工作笔记0181
    查看>>
    phoenix启动失败_The history file `/root/.sqlline/history` may be an older history---记录024_大数据工作笔记0184
    查看>>
    Phoenix基础命令_视图映射和表映射_数字存储问题---大数据之Hbase工作笔记0036
    查看>>
    phoenix无法连接hbase shell创建表失败_报错_PleaseHoldException: Master is initializing---记录020_大数据工作笔记0180
    查看>>