iis7 新建网站网站建设类行业资讯

diannao/2026/1/23 13:40:56/文章来源:
iis7 新建网站,网站建设类行业资讯,网站更改,网站首页模板怎么做策划目录 项目结构 主要步骤 auth-service里#xff1a; 1. 配置 pom.xml 依赖 2. 实现HandlerInterceptor 接口的 preHandle 函数 3. 实现 WebMvcConfigurer 的 addInterceptors 接口 4. 生成 token 和验证 token 5. 登录接口示例 user-service 里#xff1a; 6. 实现拦…目录 项目结构 主要步骤 auth-service里 1. 配置 pom.xml 依赖 2. 实现HandlerInterceptor 接口的 preHandle 函数 3. 实现 WebMvcConfigurer 的 addInterceptors 接口 4. 生成 token 和验证 token 5. 登录接口示例 user-service 里 6. 实现拦截以 user-service 为例 ps项目源码等该项目课程答辩结束后会贴出到时候可以看看源码会更清晰 项目结构 以 jwt 鉴权服务auth-service和 user-service 用户服务为例auth-service 和 user-service 两个项目位于目录同级项目结构如下 主要步骤 auth-service里 1. 配置 pom.xml 依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactId/dependencydependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.10.0/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactIdversion2.5/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependency/dependencies 2. 实现HandlerInterceptor 接口的 preHandle 函数 注意加 ComponentpreHandle 会拦截指定路径的请求若验证成功返回了 return true 然后该接口自己会再转发到对应接口处理请求如果我们return false了就不会继续转发请求 package com.example.authservice.interceptors;import com.auth0.jwt.exceptions.AlgorithmMismatchException; import com.auth0.jwt.exceptions.SignatureVerificationException; import com.auth0.jwt.exceptions.TokenExpiredException; import com.example.authservice.utils.JWTUtils; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map;Component public class JWTInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(*****************************************);System.out.println(开始token验证);System.out.println(*****************************************);MapString, Object map new HashMap();// 获取请求头中令牌String token request.getHeader(token);try {// 验证令牌JWTUtils.verify(token);System.out.println(*****************************************);System.out.println(token验证成功);System.out.println(*****************************************);return true;} catch (SignatureVerificationException e) {e.printStackTrace();map.put(msg,无效签名!);}catch (TokenExpiredException e){e.printStackTrace();map.put(msg,token过期!);}catch (AlgorithmMismatchException e){e.printStackTrace();map.put(msg,token算法不一致!);}catch (Exception e){e.printStackTrace();map.put(msg,token无效!!);}System.out.println(*****************************************);System.out.println(未通过token验证);System.out.println(*****************************************);// 未通过验证设置状态map.put(state,false);// 将map转为json jacksonString json new ObjectMapper().writeValueAsString(map);response.setContentType(application/json;charsetUTF-8);response.getWriter().println(json);return false;} } 3. 实现 WebMvcConfigurer 的 addInterceptors 接口 注册前面写的拦截器 指定拦截路径 .addPathPatterns 和不拦截路径 .excludePathPatterns注意 拦截所有路径要用 /** ——两个*不要写成一个了记得加 Configuration一般登录接口不拦截 登录接口可以也写在 auth-service 服务中更方便 ps我本来写在 user-service 里的本地运行也没问题但是当我 maven 打包时一直会出现找不到 auth-service 这个模块具体是 login 接口需要调用JWTUtils 的接口进行 token 验证这里一直报错找不到这个 import可是我明明 user-service 里已经添加依赖了试了网上方法都不行。于是放弃直接将 login 接口写在 auth-service 里就避免了在 user-service 里直接调用 suth-service 的接口但还是需要添加 suth-service 依赖的因为要实现请求拦截后面也会说到这个时候再 maven 打包就可以了有点玄学在的、、、 package com.example.authservice.config;import com.example.authservice.interceptors.JWTInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration public class InterceptorConfig implements WebMvcConfigurer {Autowiredprivate JWTInterceptor jWTInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(jWTInterceptor).addPathPatterns(/user/**).excludePathPatterns(/auth/login);} } 4. 生成 token 和验证 token 此处 SHA256 加密getToken(MapString,String map)函数生成 token代码注释写了一个萝卜一个坑按需填空即可验证 token 合法性的函数照抄就好 package com.example.authservice.utils;import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.DecodedJWT;import java.util.Calendar; import java.util.Map;public class JWTUtils {private static final String SIGNATURE !#$SGW^HDY*%G;/*** 生成token*/public static String getToken(MapString,String map){// 默认7天过期Calendar instance Calendar.getInstance();instance.add(Calendar.DATE,7);// 创建jwt builderJWTCreator.Builder builder JWT.create();// 设置payloadmap.forEach(builder::withClaim);// 指定令牌过期时间return builder.withExpiresAt(instance.getTime()).sign(Algorithm.HMAC256(SIGNATURE));}/*** 验证token合法性*/public static DecodedJWT verify(String token){return JWT.require(Algorithm.HMAC256(SIGNATURE)).build().verify(token);} }5. 登录接口示例 写在 auth-service 里主要逻辑就是在 controller 层示例如下 package com.example.authservice.controller;import com.example.authservice.utils.JWTUtils; import com.example.authservice.service.AuthService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.HashMap; import java.util.Map;Api(tags {登录鉴权接口文档}) RestController RequestMapping(/auth) EnableSwagger2 public class AuthController {Autowiredprivate AuthService authService;PostMapping(/login)ResponseBodypublic MapString,Object login(String SID, String SPassword) {MapString, Object result new HashMap();if(authService.login(SID, SPassword)){MapString, String payLoad new HashMap();payLoad.put(id, SID);String token JWTUtils.getToken(payLoad);result.put(token, token);result.put(state, true);result.put(msg, 登录成功);}else {result.put(state,false);result.put(msg, 登录失败);}return result;} }user-service 里 6. 实现拦截以 user-service 为例 要实现拦截需要以下步骤 user-service 的 pom.xml 里配置 auth-service 依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--JWT--dependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.10.0/version/dependency!-- 添加对authservice模块的依赖 --dependencygroupIdcom.example/groupIdartifactIdauth-service/artifactIdversion0.0.1-SNAPSHOT/version/dependency!-- 排除继承自authservice模块的该依赖否则会冲突--dependencygroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactIdversion2.5/versionexclusionsexclusiongroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactId/exclusion/exclusions/dependency/dependencies 服务启动类上把 auth-service 加上这样才能扫描到这个包但是注意SpringBootApplication 本来是默认扫描该启动类对应的包的如果加了指定扫描包选项那么也要把这个启动类自己对应的那个包写上不然自己都扫描不到了即 SpringBootApplication(scanBasePackages{com.example.userservice, com.example.authservice}) 参考 jwt 鉴权参考 深入浅出JWT的token鉴权机制_jwtutils.token_header-CSDN博客 FrameWork/springbootjwt at master · EamonHu/FrameWork · GitHub 拦截器不起作用看这篇 Spring Boot 拦截器无效不起作用_判断拦截器是否起作用-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌google官方网站北京高端网站建设有限公司

一:题目 二:上码 class Solution { public:/**思路:利用双指针来进行处理*/void reverseString(vector<char>& s) {for (int i 0,j s.size()-1; i < j; i,j--) {swap(s[i],s[j]);}} };

北海 做网站 英文wordpress 用户管理插件

写享元模式的时候&#xff0c;会想使用ConcurrentHashMap来保证并发&#xff0c;没有使用双重锁会不会有问题&#xff1f;但是在synchronize代码块里面需要尽量避免throw异常&#xff0c;希望有经验的同学能够给出解答&#xff1f; 1月6号补充&#xff1a;没有使用双重锁会有问…

用啥网站做首页手机网站图片切换jquery

使用OpenSSL生成自签名SSL/TLS证书和私钥 前提&#xff1a; 系统安装了OpenSSL&#xff1b; 系统&#xff1a;windows、linux都可&#xff1b; 1 生成私钥 创建一个名为 server.key 的私钥文件&#xff0c;并使用 RSA 算法生成一个 2048 位的密钥。 openssl genrsa -out s…

白银市做网站wordpress微信博客模板下载

前言 本专栏旨在通过分类学习算法&#xff0c;使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目&#xff0c;帮助您深度理解每种算法&#xff0c;避免出现刷了很多算法题&#xff0c;还是一知半解的状态 专栏导航 二分查找回溯&#xff08;Backtracking&…

手机做任务的网站有哪些内容androidstudio开发app教程

url地址或file文件获取base64 base64转blob blob或file转url&#xff1a; 使用URL.createObjectURL()方法读取出url js读取图片不同信息流

大连企业网站模板做国际网站有什么需要注意的

2019国考成绩要出来了不&#xff1f;2019国考成绩何时出来&#xff1f;现在已是1月中旬&#xff0c;许多考生对于自己的国考笔试成绩都非常期待&#xff0c;而最近风声四起&#xff0c;搞得考生们人心慌慌&#xff0c;那么2019国考成绩要出来了不&#xff1f;现在我们一起来分析…

做网站贵么大连工业大学研究生

Synchronized 底层原理 1. JVM 层面的实现 synchronized 是 Java 中的一个关键字&#xff0c;它提供了一种简单的策略来实现线程同步。在 JVM 层面&#xff0c;synchronized 可以依赖于对象内部的监视器锁&#xff08;monitor lock&#xff09;来实现同步。 锁的获取与释放&a…

ftp怎么设置网站首页国家先进制造业集群

类加载机制 使用某个类时&#xff0c;如果该类的class文件没有加载到内存时&#xff0c;则系统会通过以下三个步骤来对该类进行初始化.   类的加载&#xff08;Load&#xff09; → 2.类的连接&#xff08;Link&#xff09; → 3.类的初始化&#xff08;Initialize&#xf…

北京正规网站建设公司哪家好兰州网站设计

本教程讲解EPS三维测图模块,主要内容有新建工程、创建垂直模型,为后续工作做准备。 目录 一、创建工程 二、生成垂直摄影模型

类似卡盟网站卖怎么做诸城做网站找个人

在Vue中我们有时候会碰到一些需求&#xff0c;就是在点击某个按钮的时候&#xff0c;我们执行别的操作&#xff0c;但是我们希望点击别的操作的时候&#xff0c;让我们之前点击的按钮进行处于高亮状态。 个人在处理业务的时候&#xff0c;测试说&#xff0c;当用户选择某个按钮…

网站搭建图片搜索推广竞价托管哪家好

//2019.7.14晚matplotlib七种常见图像输出编程大全 七种图形汇总输出如下&#xff1a; import numpy as np #导入数据结构nmupy模块import matplotlib.pyplot as plt #导入matplotlib图像输出模块plt.rcParams["font.sans-serif"]["SimHei"] #输出图像的标…

php做视频分享网站安卓市场应用商店下载

挂载&#xff08;mounting&#xff09;是指由操作系统使一个存储设备&#xff08;诸如硬盘、CD-ROM或共享资源&#xff09;上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。 本质&#xff1a;针对某一设备, 分析出其文件系统结构, 并根据其文件系统类型调用…

芙蓉区建设局网站外贸邮箱用哪个比较好

在大数据报告中&#xff0c;多头借贷风险、逾期风险、联系人风险、司法风险等是大数据评分评级的重要组成部分&#xff0c;大数据多头借贷风险也是很多银行和金融平台比较看重的&#xff0c;那如果大数据中多头借贷风险严重怎么办呢?本文详细为大家讲讲。 大数据多头风险是什么…

怎么在自己的网站加关键词怎么开平台

深入理解DB2中的日志管理与监控&#xff1a;SYSIBMADM.LOG_UTILIZATION和SYSIBMADM.SNAPDB视图 DB2是一个强大的关系数据库管理系统&#xff0c;日志管理和监控是其运维管理的重要组成部分。本文将深入探讨两个关键的系统管理视图&#xff1a;SYSIBMADM.LOG_UTILIZATION 和 SY…

如何改进网站中英文切换的网站怎么做

不想成为全栈的前端不是好程序员。 数年以前,全栈工程师的理念忽然风靡墙内外,成为开发者们津津乐道的话题。数年过去,关于全栈工程师的争议不多了,教你速成全栈工程师的视频课程多了起来,说明大家对于这个理念慢慢接受了。但我发现,鼓吹前端往全栈转型做的有点走…

龙泉网站开发建网站需成本多少钱

作者&#xff1a; 马国良 | 2006年11月14日13时31分 | 【内容提要】第一名&#xff1a;妈妈说…… 入选原因&#xff1a;单看了两个域名就让人觉得变态“妈妈说就算你注册的域名再长google都能搜索出来”(mamashuojiusuannizhucedeyumingzaichanggoogledounengsousuochulai.cn)…

港口建设网站wordpress php 采集

一&#xff1a;题目&#xff1a; 哥尼斯堡是位于普累格河上的一座城市&#xff0c;它包含两个岛屿及连接它们的七座桥&#xff0c;如下图所示。 可否走过这样的七座桥&#xff0c;而且每桥只走过一次&#xff1f;瑞士数学家欧拉(Leonhard Euler&#xff0c;1707—1783)最终解…

公司网站建设管理网页制作语言

进程&#xff08;Process&#xff09;是具有一定独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合&#xff0c;它本身没有任何运行的含义&#xff0c;只是一个静态实体。而进程则不同&#xff…

开发网站大概要多少钱宁波网站建设推广

一、为什么会有跨域问题&#xff1f; 是因为浏览器的同源策略是对ajax请求进行阻拦了&#xff0c;但是不是所有的请求都给做跨域&#xff0c;像是一般的href属性&#xff0c;a标签什么的都不拦截。 二、解决跨域问题的两种方式 JSONPCORS 三、JSONP 先简单来说一下JSONP&#x…

效果好企业营销型网站建设开发电子工程设计网站

UUID&#xff1a;Universally Unique Identifier 通用唯一识别码 现在很多数据库的主键id&#xff0c;由原来的int自增&#xff0c;改为 UUID 表示。因为 UUID 本身不可能重复&#xff0c;线程安全&#xff0c;完美支持高并发。 示例代码如下&#xff1a; package com.miracle.…