SpringBoot文档之Web的阅读笔记

cnblogs 2024-08-25 11:09:00 阅读 80

    <li>Web

    基于SpringBoot框架开发应用,支持内嵌Tomcat/Jetty/Undertow/Netty来提供HTTP服务器。

    SpringBoot当前封装了如下组件:

    • <code>spring-boot-starter-web
    • spring-boot-starter-webflux

Servlet Web

  • Servlet Web Applications

    重要的注解:

    • @Controller
    • @RestController
    • @RequestMapping
    • @GetMapping
    • @DeleteMapping

    SpringBoot支持如下模板引擎:

    • FreeMarker
    • Groovy
    • Thymeleaf
    • Mustache

参考资料

  • Spring Web MVC framework
  • Spring Web MVC
  • CORS

Reactive Web

  • Reactive Web Applications

    Spring WebFlux在Spring 5.0版本中引入。

    SpringBoot支持如下模板引擎:

    • FreeMarker
    • Thymeleaf
    • Mustache

    配置属性见ServerProperties。

参考资料

  • Reactor
  • Reactive Streams
  • Spring WebFlux
  • Functional Endpoints
  • Custom Serializers and Deserializers
  • Webjars

    使用maven坐标的方式管理静态资源的依赖关系。

Shutdown

  • Graceful Shutdown

    启动容易,退出难。

    使用Purify、valgrind等工具检测应用程序的内存类问题时,应用程序需要保证优雅退出,否则无法输出完整的检测报告。

Security

3A,认证、鉴权、授权。

认证,识别当前用户是否可以登录系统,一般比如用户名和密码、一次性认证码、动态令牌等。

鉴权,检查当前用户是否具备执行某项操作的权限,设计权限系统时,注意分权和分域问题,从设计和方案上消除横向越权、纵向越权。

授权,管理员或者具备高权限的用户,为低权限的用户,赋予某操作权限,或者访问某资源的权限。

Spring Security仅是技术框架,需要结合业务特点,设计解决方案。

  • Spring Security

参考资料

  • Spring Security

  • Spring Security Reference Guide

  • 什么是 RBAC 模型?

  • RBAC——基于角色权限的模型

  • 权限系统功能模块设计主流的九种常见权限模型

  • 网络安全基础之访问控制模型详解——DAC, MAC, RBAC

  • 面试必备!详解单点登录(SSO)流程,轻松应对面试难题

    单点登录(SSO)是一种认证机制,允许用户在多个系统或应用服务之间,只需一次登录认证,即可访问所有被授权的资源。通过SSO,用户不需要为每个系统单独登录,减少了重复输入用户名和密码的烦恼,同时提升了安全性。

    常见协议:

    • SAML即Security Assertion Markup Language
    • OAuth
    • OpenID
    • CAS即Central Authentication Service
  • SSO、OAuth2、JWT、CAS、OpenID、LDAP、RBAC

  • 单点登录(SSO)详解——超详细

    一次登录,全部登录!一次注销,全部注销!!

  • 全面介绍SSO(单点登录)

  • 单点登录(SSO)看这一篇就够了

  • 横向越权与纵向越权

    纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源

    横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源

  • 横向越权与纵向越权

Session

  • Spring Session

    支持使用Redis、JDBC、Hazelcast、MongoDB来保存、共享Session数据。

参考资料

  • Spring Session
  • Spring Boot for Apache Geode

GraphQL

  • Spring for GraphQL

    相关组件,如下:

    • spring-boot-starter-graphql
    • spring-boot-starter-web
    • spring-boot-starter-websocket
    • spring-boot-starter-webflux
    • spring-boot-starter-rsocket

参考资料

  • GraphQL Java代码仓库
  • GraphQL Java

HATEOAS

  • Spring HATEOAS


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。