首页>>后端>>SpringBoot->springboot教程前后分离?

springboot教程前后分离?

时间:2023-12-02 本站 点击:0

Spring Boot整合Shiro实现前后端分离

  Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。

  Shiro基本功能点如下所示:

  Shiro工作流程如下所示:

  Shiro内部架构如下所示:

  本文实现源码如下,欢迎Star和Fork。

  实现思路:用户登录时生成token信息,设置过期时间,使用Redis存储。前端调用接口时将token作为参数传给服务端,服务端根据token信息认证用户。

  自定义AuthFilter过滤器,继承AuthenticatingFilter重写createToken、isAccessAllowed、onAccessDenied、onLoginFailure方法。

  AuthenticatingFilte类executeLogin方法如下所示:

  用户登录时删除旧Token信息,重新生成Token信息,退出登录时删除Token信息。 使用Redis存储Token信息时,同时存储已用户ID为键,Token为值和已Token为键、用户ID为值的信息 。

  整体实现流程图如下所示, 图源来自参考链接一,侵删 。

  实现思路:自定义ModularRealmAuthenticator管理多Realm,结合自定义认证Token关联不同的Realm。

  SecurityManager和ModularRealmAuthenticator配置如下:

  自定义认证Token,重写getCredentials方法, 根据loginType返回不同的比较对象 。

  普通登陆Realm认证逻辑如下所示:

  Token关联的Realm认证逻辑如下所示:

  自定义ModularRealmAuthenticator,管理多Realm,实现逻辑如下所示:

  用户登录,返回生成的token信息:

  用户携带token信息查询文章( 有对应权限 ):

  用户携带token信息删除用户( 无权限 ):

  用户携带token信息退出登录:

  用户退出登录后携带原token信息删除用户:

springboot 前后端分离跨域方案 ProxyServlet配置

针对前后端分离场景下的一种跨域方案,如果不使用如nginx或者springboot的zuul网关等方案,可以采用 httpproxy 方案。

配置说明:

servlet_url : 对外可以访问的匹配路径,如前端js 在web服务访问后端服务的一个接口,可以不加域名或者ip port;

target_url : 指向后端服务的根服务地址。

更多,请关注:

springboot 技术实践总结

(Docker Nginx) Spring boot+Vue 前后端分离部署 详细完整版

简述:Spring boot+Vue 前后端分离项目部署,主要采用docker容器部署方式。

Springboot项目部署:docker构建mysql环境+docker构建项目自身环境。

Vue项目:使用docker启动nginx服务器方式代理部署。

项目使用mysql8.0作为数据源,所以部署时需要使用docker构建mysql环境及项目自身环境。

连接出现1251错误时:

首先将项目进行打包:mumu-0.0.1-SNAPSHOT.jar

到此,springboot项目采用docker方式运行部署结束。

使用docker容器方式运行nginx服务器。

对于nginx服务器,重要的两个操作是:

所以我们在配置启动nginx容器的时候,需要将对应的目录及文件进行宿主机挂载,方便后续更新资源及操作

启动命令:

springboot国际化(前后端分离情况)

spring.messages.basename=messages/messages

其中if else部分可以省略,看前端传的情况,前端如果传送header中的Accept-Language是en,zh,ja这样的简写,就需要补全,如果前端传过来的就是en-US,zh-CN,这样的就不需要if,else转换。

当然也可以不用messageSource用ResourceBundle :

messages.properties中的是默认的,如果语言取不到就取默认的。

messages_zh_CN.properties是中文的配置:

messages_en_US.properties是英文配置:

比如切换语言的多选框:

具体方法:

则jquery调用可以是这样:

其中 headers:{ 'Accept-Language':localStorage.getItem('lang')||'en' }, 这个就是根据你切换的语言,传给服务端对应的语言,这样就做到前后端同步。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/9908.html