- 浏览: 494635 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
spring security
security,就是实现了一套用户访问权限的工具(框架),使用者只要完成相关的配置就可以实现权限访问了,不用自己用过滤器来完成一套。
是以userName作为惟一检索用户信息的,
最简单的security就是用默认的配置
会用浏览器默认的登陆界面,输入帐号密码
帐号密码会以base64方式进行加密后放到HTTP请求中的Headers中的Authorization:
security用自己的配置
1.如果有登陆页面,进行验证的也会过滤/login,用户名的请求字段 默认为userName,password-parameter 密码的请求字段 默认为password
2.通过session来处理记着登陆状态的
<
src/main/resources/templates/login.html
1.打开某个页面,security过滤器检测到这个页面有权限管理就生成一session,保存打开的URL(保证后面跳转回这个页面)。
2.用户输入帐号和密码,security对比系统中的帐号和密码和权限,如果一致就生成一个新和session并跳转回之前的页面。
3.跳转回之前的页面,因为对比到有session了,所以就可以访问这个API了
注销功能:http://localhost:8080/login?logout
参考:http://www.jianshu.com/p/694d157bb1bc
参考:http://www.leftso.com/blog/139.html
http://localhost:8080/Test/test
security,就是实现了一套用户访问权限的工具(框架),使用者只要完成相关的配置就可以实现权限访问了,不用自己用过滤器来完成一套。
是以userName作为惟一检索用户信息的,
最简单的security就是用默认的配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
配置登陆名和密码 #security安全机制 security.user.name=xing security.user.password=123456
会用浏览器默认的登陆界面,输入帐号密码
帐号密码会以base64方式进行加密后放到HTTP请求中的Headers中的Authorization:
security用自己的配置
1.如果有登陆页面,进行验证的也会过滤/login,用户名的请求字段 默认为userName,password-parameter 密码的请求字段 默认为password
2.通过session来处理记着登陆状态的
<
?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.midea</groupId> <artifactId>base</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>base</name> <!-- 设定仓库,按设定顺序进行查找. --> <!--<repositories> <repository> <id>public</id> <name>Team Nexus Repository</name> <url>http://10.33.183.113:8081/nexus/content/groups/public</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>public</id> <name>Team Nexus Repository</name> <url>http://10.33.183.113:8081/nexus/content/groups/public</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> </build> </project>
server.port=8080 #服务器路径 #server.context-path=/eurekaServer #spring.application.name=securityTest ##gitHub路径 #spring.cloud.config.server.git.uri=https://github.com/huangyongxing310/springCloudConfigTest.git ##文件路径,如果是根目录可以不配置 #spring.cloud.config.server.git.searchPaths=test ##配置仓库的分支, #spring.cloud.config.label=master ##gitHub帐号密码 #spring.cloud.config.server.git.username=596134920@qq.com #spring.cloud.config.server.git.password=xing310600 #security安全机制 #security.user.name=xing #security.user.password=123456 #eureka.client.serviceUrl.defaultZone=http://localhost:8761/eurekaServer/eureka/ # 设置对称密钥 #encrypt.key=123456
src/main/resources/templates/login.html
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> <head> <title>Spring Security Example </title> </head> <body> <div th:if="${param.error}"> 用户名或密码错 </div> <div th:if="${param.logout}"> 您已注销成功 </div> <form th:action="@{/login}" method="post"> <div><label> 用户名 : <input type="text" name="username"/> </label></div> <div><label> 密 码 : <input type="password" name="password"/> </label></div> <div><input type="submit" value="登录"/></div> </form> </body> </html>
package com.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { //配置那些API要进行权限的访问 @Override protected void configure(HttpSecurity http) throws Exception { // http // .authorizeRequests() // .antMatchers("/", "/home").permitAll() // .anyRequest().authenticated() // .and() // .formLogin() // .loginPage("/login") // .permitAll() // .and() // .logout() // .permitAll(); http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .permitAll(); } //进行用户信息认证时会调用这里获取用户的相关信息来与用户发送过来的信息进行比较 @Autowired public void globalUserDetails(AuthenticationManagerBuilder auth) throws Exception { // auth.inMemoryAuthentication() // .withUser("user").password("password").roles("USER") // .and() // .withUser("app_client").password("nopass").roles("USER") // .and() // .withUser("admin").password("password").roles("ADMIN"); //配置用户来源于数据库 auth.userDetailsService(userDetailsService()); } //这个可以作为扩展,查询数据库里这个用户的相关信息 @Bean public UserDetailsService userDetailsService() { return new UserDetailsService() { @Override public UserDetails loadUserByUsername(String name) throws UsernameNotFoundException { // 通过用户名获取用户信息 // Account account = accountRepository.findByName(name); // if (account != null) { // 创建spring security安全用户 System.out.println("123456789"); User user = new User("xing", "123456", AuthorityUtils.createAuthorityList(new String []{"USER"})); return user; // } else { // throw new UsernameNotFoundException("用户[" + name + "]不存在"); // } } }; } /* @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("xing").password("123456").roles("USER"); }*/ }
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import io.swagger.annotations.Api; @Api(value = "/login", description = "测试接口", tags = "LoginController") @Controller public class LoginController { @RequestMapping("/login") public String login() { return "login"; } }
package com.controller; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; @Api(value = "/Test", description = "测试接口", tags = "TestController") @RequestMapping("/Test") @RestController public class TestController { final static Logger logger = LogManager.getLogger(TestController.class); @RequestMapping(value = "/test", method = RequestMethod.GET) public String test() { logger.info("test"); return "test"; } }
package com; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication //spring boot 开启应用 //@EnableConfigServer //表示开启Config服务 //@EnableEurekaClient //只能为eureka作用 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
1.打开某个页面,security过滤器检测到这个页面有权限管理就生成一session,保存打开的URL(保证后面跳转回这个页面)。
2.用户输入帐号和密码,security对比系统中的帐号和密码和权限,如果一致就生成一个新和session并跳转回之前的页面。
3.跳转回之前的页面,因为对比到有session了,所以就可以访问这个API了
注销功能:http://localhost:8080/login?logout
参考:http://www.jianshu.com/p/694d157bb1bc
参考:http://www.leftso.com/blog/139.html
http://localhost:8080/Test/test
发表评论
-
每天学到的技术点3
2022-02-21 20:01 2451.TEXT与BLOB的区别,二者 ... -
springboot tomcat 参数配置与数据库连接池多少的性能分析
2021-05-12 22:15 558参数配置与数据库连接池多少的性能分析 tomcat线程数 ... -
springBoot tomcat配置参数说明
2021-05-12 09:13 3014#最大连接数 server.tomcat.max-connec ... -
log4j2应用
2020-07-23 14:16 362https://blog.csdn.net/giventian ... -
文件上传下载
2020-07-06 13:16 4171.文件ID,名字(源,目标),大小,路径(/aa/bb/s. ... -
Spring Boot中整合Sharding-JDBC
2018-11-26 18:03 3446Spring Boot中整合Sharding-JDBC ... -
spring boot 集成 shiro
2018-08-06 10:01 481spring boot 集成 shiro shiro(权限 ... -
spring oauth2.0
2017-07-07 18:12 1620spring oauth2.0 grant_type : a ... -
oneAPM 在SpringBoot中的应用
2017-02-28 11:23 953oneAPM 在SpringBoot中的应用 下载 One ... -
SpringBootJsp例子
2017-02-22 19:52 405SpringBootJsp例子 -
Spring-boot中Http与Https兼容例子
2017-01-14 09:29 1413Spring-boot中Http与Https兼 ... -
Https 在spring-boot应用例子
2017-01-12 17:45 1016Https 在spring-boot应用例 ... -
Spring Boot webSocket应用例子
2016-11-25 16:20 1084Spring Boot webSocket应用例子 后端代 ... -
Spring boot Properties文件读取
2016-10-18 14:09 802Spring boot Properties文件读取 @C ... -
Spring boot 简单例子
2016-10-18 11:33 580Spring boot 简单例子 application. ...
相关推荐
Spring Security 实践指南 Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户...
Spring Security是一个功能强大、高度定制的安全框架,它专门用于为基于Spring的应用程序提供安全性解决方案。Spring Security架构的设计初衷是为了解决认证和授权的需求,确保应用程序的安全性。它提供了全面的安全...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的安全服务。这个框架能够处理认证、授权以及各种安全相关的功能,帮助开发者构建安全、可扩展的应用。以下...
Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...
在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
SpringBoot+SpringSecurity处理Ajax登录请求问题 SpringBoot+SpringSecurity处理Ajax登录请求问题是SpringBoot开发中的一個常见问题,本文将详细介绍如何使用SpringBoot+SpringSecurity处理Ajax登录请求问题。 ...
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...
SpringSecurity是Java领域中一款强大的安全框架,主要用于Web应用程序的安全管理。它提供了全面的身份验证、授权、会话管理以及安全相关的功能,可以帮助开发者构建安全的Web应用。在本笔记中,我们将深入探讨Spring...
Spring Security是Spring生态体系中的一个核心组件,主要负责应用程序的安全性,包括认证和授权。它为Web应用提供了全面的保护,防止未经授权的访问和操作。在版本2.5时,Spring Security已经是一个成熟且功能丰富的...
### Spring Security 3.0.1 中文版知识点解析 #### 一、Spring Security 3.0.1 概览 ##### 1.1 Spring Security 是什么? Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它提供了许多功能...
Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的...
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 首先,SSM环境中我们通过xml配置的...Springsecurity在两种不同的开发模式中使用,有经典的独立web后台管理系统,也有时下最流行的前后端分离场景。
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是安全领域中Spring生态系统的一部分。Spring Security旨在为Java应用程序提供一个全面的安全解决方案,尤其适用于企业级应用场景。它主要...
### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的安全性受到了前所未有的关注。为了应对这些挑战,Spring Security 应运而生,成为了一个非常重要...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、权限授权、会话管理、CSRF防护以及基于HTTP的访问控制。在这个例子中,我们将...
SpringSecurity是Java领域中一款强大的安全框架,专为Spring和Spring Boot应用设计,提供全面的安全管理解决方案。在SpringBoot Web开发中,SpringSecurity扮演着核心角色,负责处理身份验证、授权以及访问控制等...
Spring Security 是一个强大的安全框架,用于为Java应用提供安全控制。在传统的权限管理中,权限配置通常硬编码在应用程序中,这使得权限调整变得困难,每次变动都需要重新部署应用。然而,通过动态授权,我们可以将...
在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...