当前位置: 首页 > news >正文

阿里云建站后台做外贸soho 需要有网站吗

阿里云建站后台,做外贸soho 需要有网站吗,织梦转wordpress插件下载地址,宁夏吴忠网站建设前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容: 环境准备Spring Security核心概…

前言

Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容:

  1. 环境准备
  2. Spring Security核心概念
  3. 实现基本登录功能
  4. 添加Spring Security的数据库认证

环境准备

在开始写Spring Security之前,我们需要配置好以下环境:

  1. JDK 1.8或以上
  2. Maven 3.0或以上
  3. Spring Boot 2.1.4或以上
  4. IDE(推荐使用IntelliJ IDEA)

在完成以上步骤后,我们可以开始编写代码。

Spring Security核心概念

在使用Spring Security时,需要了解一些核心概念:

  1. Authentication: 安全认证对象,包括用户名、密码以及权限等信息。
  2. Authorization: 安全授权对象,授权某个用户拥有访问某个资源的权限。
  3. Filter: 安全过滤器,过滤请求,并传递继续处理请求的权限。
  4. Provider: 安全认证提供者,获取认证信息,并返回持久化信息等内容。

实现基本登录功能

添加依赖

首先需要添加Spring Security的依赖到项目中:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>${spring-boot.version}</version>
</dependency>

开启Spring Security

在Spring Boot启动类上添加@EnableWebSecurity@Configuration注解,并继承WebSecurityConfigurerAdapter

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {//...
}

添加用户信息

我们需要添加两个用户信息,一个是普通用户,一个是管理员用户。

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {// 普通用户auth.inMemoryAuthentication().withUser("user").password("123456").roles("USER");// 管理员用户auth.inMemoryAuthentication().withUser("admin").password("123456").roles("USER", "ADMIN");
}

配置授权规则

我们需要在配置类中配置哪些路径需要哪些权限才能访问,以及哪些路径不需要进行安全认证。

@Override
protected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/admin").hasAnyRole("ADMIN").antMatchers("/user").hasAnyRole("USER", "ADMIN").anyRequest().authenticated().and().formLogin();
}

其中:

  • /admin路径需要ADMIN权限。
  • /user路径需要USER和ADMIN权限。
  • 其他请求需要通过认证后才能访问。
  • 添加**formLogin()**方法开启默认登录界面。

运行程序

现在我们已经完成了一个简单的登录功能,可以运行程序并使用添加的用户进行登录操作。

添加Spring Security的数据库认证

在上面的例子中,我们将用户信息存储在了内存中,但在实际应用中,用户信息往往是存储在数据库中的。

首先我们要创建一张用户表来存储用户信息。

创建用户表

在数据库中创建一个名为 users 的数据表,表的结构如下:

CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(45) NOT NULL,`password` varchar(255) DEFAULT NULL,`enabled` tinyint(1) DEFAULT '1',PRIMARY KEY (`id`)
);

在该表中,字段含义如下:

  • id:自增主键。
  • username:用户用户名。
  • password:用户密码(使用BCrypt加密)。
  • enabled:标记用户是否启用,1为启用,0为禁用。

添加依赖

我们需要添加Spring Security的数据库认证依赖到项目中:

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${spring-security.version}</version>
</dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${spring-security.version}</version>
</dependency>

添加配置

我们需要添加以下配置:

  1. 数据源配置
  2. UserDetailsService配置
  3. PasswordEncoder配置
  4. AuthenticationProvider配置
  5. HttpSecurity配置
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Autowiredprivate DataSource dataSource;@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder());}@Beanpublic UserDetailsService userDetailsService() {return new JdbcUserDetailsManager(dataSource);}@Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/admin/**").hasRole("ADMIN").antMatchers("/user/**").hasAnyRole("USER", "ADMIN").anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout().permitAll();}@Beanpublic AuthenticationProvider authenticationProvider() {DaoAuthenticationProvider provider = new DaoAuthenticationProvider();provider.setUserDetailsService(userDetailsService());provider.setPasswordEncoder(passwordEncoder());return provider;}
}

在代码中,userDetailsService()方法返回一个JdbcUserDetailsManager对象,该对象用于从数据库中加载用户信息。

PasswordEncoder是用于加密密码的,我们使用了BCryptPasswordEncoder来加密密码。

最后,我们还需要配置一个AuthenticationProvider用于处理认证请求。

添加用户信息到数据库

我们需要向数据库中添加一些测试用的用户信息,可以使用以下代码:

@Autowired
private DataSource dataSource;@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).withUser("user").password(passwordEncoder().encode("password")).roles("USER").and().withUser("admin").password(passwordEncoder().encode("password")).roles("USER", "ADMIN");
}

运行程序

现在我们已经完成了数据库认证功能,可以运行程序并使用添加的用户进行登录操作,Spring Security会从数据库中读取用户信息并进行认证。

总结

Spring Security是一个非常好用的身份认证和授权框架,可以有效保证应用的安全性。本文介绍了如何使用Spring Security实现基本的登录功能和数据库认证,希望这篇文章能够帮助到你。

http://www.yayakq.cn/news/831497/

相关文章:

  • 公司门户网站设计手机访问wordpress网站卡
  • 网站怎么做动态切图全屋定制装修加盟网
  • 网站建设公司计划书昆明专业网络营销公司
  • 网站建设合作加盟wordpress 地图相册
  • 制作软件的手机软件海南网站优化公司
  • 怎么做自己的网站推广产品企业网站seo营销
  • 做软件下载网站怎么赚钱网站设计基础
  • wordpress仿站步奏企业画册设计公司
  • 瀑布流资源网站模板零基础怎么学视频剪辑
  • 河北网站制作wordpress drupal
  • 周口建设路网站库房管理软件
  • 做网站和做游戏哪个难阿里云服务器可以访问国外网站吗
  • 商城开发网站开发wordpress自定义末班
  • 网站设计实用实例餐饮设计公司名字
  • 网站后台管理系统安装python采集到wordpress
  • 沈阳网站设计营销型百度seo价格查询
  • 南京网站建设 小程序厦门市翔安建设局网站
  • 企业网站建设飞沐上海外贸仓储公司
  • 可以注册的网站汕头网页模板建站
  • 网站seo关键词设置开发区网站建设在哪
  • 网站icp申请现在的seo1发布页在哪里
  • 在电脑上做网站的软件建立短语
  • 做网站赚钱需要多少人手哪些网站是django做的
  • 做gif有什么网站wordpress 菜单管理系统
  • 网站公司备案通知财务公司名称大全简单大气
  • 中山网络公司网站建设网站建设公司推荐金石下拉网络
  • 公司网站推广是做什么电商网站建设简单代码网页
  • 安阳+网站建设php网站开发实际教程答案
  • 成都网站制作公司企业推广的主要目的是
  • 西安装修公司网站制作产品推广会议流程