首页 > 作文

java安全框架有哪些(java入门基础知识)

更新时间:2023-04-05 02:30:50 阅读: 评论:0

前面介绍了spring boot 使用jwt实现token验证,其实spring boot 有完整的安全认证框架:spring curity。接下来我们介绍如何集成curity 实现安全验证。

一、curity简介

安全对于企业来说至关重要,必要的安全认证为企业阻挡了外部非正常的访问,保证了企业内部数据的安全。

当前,数据安全问题越来越受到行业内公司的重视。数据泄漏很大一部分原因是非正常权限访问导致的,于是使用合适的安全框架保护企业服务的安全变得非常紧迫。在java领域,spring curity无疑是最佳选择之一。

spring curity 是 spring 家族中的一个安全管理框架,能够基于 spring 的企业应用系统提供声明式的安全访问控制解决方案军训心得体会。它提供了一组可以在spring应用系统中灵活配置的组件,充分利用了 spring的ioc、di和aop等特性,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

二、spring boot对curity的支持

虽然,在spring boot出现之前,spring curity已经发展多年,但是使用并不广泛。安全管理这个领域一直是shiro的天下,因为相对于shiro,在项目中集成spring curity还是一件麻烦的事大三阳的治疗情,所以spring curity虽然比shiro强大,但是却没有shiro受欢迎。

随着spring boot的出现,spring boot 对spring curity 提供了自动化配置方案,可以零配置使用 spring curity。这使得spring curity重新焕发新的活力。

spring boot 提供了集成 spring curity 的组件包
spring-boot-starter-curity,方便我们在 spring boot 项目中使用 spring curity进行权限控制。

三、集成curity

在spring boot 项目中集成spring boot curity 非常简单,只需在项目中增加spring boot curity的依赖即可。下面通过示例演示spring boot中基础curity的登录验证。

1. 添加依赖

spring boot 提供了集成 spring curity 的组件包
spring-boot-starter-curity,方便我们在 spring boot 项目中使用 spring curity。

<dependency>    <groupid>org.springframework.boot</groupid>    <artifactid>spring-boot-starter粗壮的近义词-web</artifactid></dependency><dependency>    <groupid>org.springframework.boot</groupid>    <artifactid>spring-boot-starter-thymeleaf</artifactid></dependency><dependency>    <groupid>org.springframework.boot</groupid>    <artifactid>spring-boot-starter-curity</artifactid></dependency>

上面除了引入curity组件外,因为我们要做web系统的权限验证,所以还添加了web和thymeleaf组件。

2. 配置登录用户名和密码

用户名和密码在application.properties中进行配置。

# curityspring.curity.ur.name=adminspring.curity.ur.password=admin

在application.properties配置文件中增加了管理员的用户名和密码。

3. 添加controller

创建curitycontroller 类,在类中添加访问页面的入口。

@controllerpublic class curitycontroller {    @requestmapping("/")    public string index() {        return "index";    }}

4. 创建前端页面

在resources/templates 目录下创建页面 index.html,这个页面就是具体的需要增加权限控制的页面,只有登录了才能进入此页。

<!doctype html><html xmlns="/d/file/titlepic/" xmlns:th="http://www.thymeleaf.org"><body><h1>hello</h1><p>我是登录后才可以看的页面</p></body></html>

5. 测试验证

配置完成后,重启项目,访问地址:http://localhost:8080/,页面会自动弹出一个登录框,如下图所示。

系统自动跳转到spring curity默认的登录页面,输入之前配置的用户名和密码就可以登录系统,登录后的页面如下图所示。

通过上面的示例,我们看到spring curity自动给所有访问请求做了登录保护,实现了页面权限控制。

四、登录验证

前面演示了在spring boot项目中集成spring curity 实现简单的登录验证功能,在实际项目使用过程中,可能有的功能页面不需要进行登录验证,而有的功能页面只有进行登录验证才能访问。下面通过完整的示例程序演示如何实现curity的登录认证。

1. 创建页面content.html

先创建页面content.html,此页面只有登录用户才可查看,否则会跳转到登录页面,登录成功后才能访问。示例代码如下:

<!doctype html><html xmlns="/d/file/titlepic/" xmlns:th="http://www.thymeleaf.org"><body><h1>content</h1><p>我是登录后才可以看的页面</p><form method="post" action="/logout">    <button ty11种常用卧位图片pe="submit">退出</button></form></body></html>

在上面的示例中,我们看到退出使用post请求,因为curity退出请求默认只支持post 。

2. 修改index.html 页面

修改之前的index.html页面,增加登录按钮。

<p>点击 <a th:href="@{/content}">这里</a>进入管理页面</p>

在上面的示例中,index页面属于公共页面,无权限验证,从index页面进入content页面时需要登录验证。

3. 修改controller控制器

修改之前的curitycontroller控制器,增加content页面路由地址,示例代码如下:

@requestmapping("/")public string index() {    return "index";} @requestmapping("/content")public string content() {    return "content";}

4. 创建 curityconfig 类

创建 curity的配置文件curityconfig类,它继承于
webcurityconfigureradapter,现自定义权限验证配置。示例代码如下:

@configuration@enablewebcuritypublic class curityconfig extends webcurityconfigureradapter {    @override    protected void configure(httpcurity http) throws exception {        http.authorizerequests()            .antmatchers("/", "/home").permitall()            .anyrequest().authenticated()            .and()            .formlogin()            .permitall()            .and()            .logout()            .permitall()            .and()            .csrf()            .ignoringantmatchers("/logout");    }}

在上面的示例程序中,curityconfig类中配置 三分钟励志小故事index.html 可以直接访问,但 content.html 需要登录后才可以查看,没有登录的自动跳转到登录页面。

@enablewebcurity:开启 spring curity 权限控制和认证功能。antmatchers(“/”, “/home”).permitall():配置不用登录可以访问的请求。anyrequest().authenticated():表示其他的请求都必须有权限认证。formlogin():定制登录信息。loginpage(“/login”):自定义登录地址,若注释掉,则使用默认登录页面。logout():退出功能,spring curity自动监控了/logout。ignoringantmatchers(“/logout”):spring curity 默认启用了同源请求控制,在这里选择忽略退出请求的同源限制。

5. 测试验证

修改完成之后重启项目,访问地址http://localhost:8080/可以看到 index 页面的内容,单击链接跳转到content页面时会自动跳转到登录页面,登录成功后才会自动跳转到
http://localhost:8080/content,在 content 页面单击“退出”按钮,会退出登录状态,跳转到登录页面并提示已经退出。

登录、退出、请求受限页面退出后跳转到登录页面是常用的安全控制案例,也是账户系统基本的安全保障。

本文发布于:2023-04-05 02:30:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a911b6b2ca6244394d2b33ebb7022294.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java安全框架有哪些(java入门基础知识).doc

本文 PDF 下载地址:java安全框架有哪些(java入门基础知识).pdf

标签:页面   示例   跳转到   项目
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图