浙江省建设厅官方网站传媒宣传片制作

pingmian/2025/10/7 15:41:08/文章来源:
浙江省建设厅官方网站,传媒宣传片制作,做医采官方网站,vps空间如何做网站备份目录 主要流程#xff1a; 具体实现#xff1a; 主要流程#xff1a; #xff08;特殊#xff09;1、如果你需要返回json格式字符串#xff0c;那么你首先需要编写相应的处理器#xff0c;如果不需要则可直接写配置类 2、编写配置类 3、编写认证授权相关的mapper…目录 主要流程  具体实现 主要流程  特殊1、如果你需要返回json格式字符串那么你首先需要编写相应的处理器如果不需要则可直接写配置类 2、编写配置类 3、编写认证授权相关的mapper方法和service方法 4、编写认证和授权逻辑 4.1、编写认证授权逻辑的类实现UserDetailsService接口重现loadUserByUserName方法 提示不要忘记将该类放入spring容器中不然security无法使用该逻辑 4.2、根据用户名查询用户 4.3、根据用户名查询相关权限 4.4、将用户的权限集合转换为security的权限集合 4.5、构建UserDetails对象放入用户名、密码、security权限集合 4.6、返回构建好的UserDetails对象 5、编写鉴权配置 6、使用不同权限的用户登录查看他们是否能访问这些接口 具体实现 特殊1、如果你需要返回json格式字符串那么你首先需要编写相应的处理器 提示BaseResult是一个统一返回结果集这里返回结果只是一个参考因为我的业务时需要返回json格式字符串具体处理器如何操作还是看业务 登录成功处理器 //登录成功处理器 public class MyLoginSuccessHandler implements AuthenticationSuccessHandler {Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {response.setContentType(text/json;charsetutf-8);BaseResult baseResult new BaseResult(200,登录成功,null);response.getWriter().write(JSON.toJSONString(baseResult));} }登录失败处理器 //登录失败处理器 public class MyLoginFailureHandler implements AuthenticationFailureHandler {Overridepublic void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {response.setContentType(text/json;charsetutf-8);BaseResult baseResult new BaseResult(402,用户名或密码错误,null);response.getWriter().write(JSON.toJSONString(baseResult));} }注销成功处理器 //登出成功处理器 public class MyLogoutSuccessHandler implements LogoutSuccessHandler {Overridepublic void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {response.setContentType(text/json;charsetutf-8);BaseResult baseResult new BaseResult(200,注销成功,null);response.getWriter().write(JSON.toJSONString(baseResult));} }未登录处理器 //未登录处理器 public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint {Overridepublic void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {response.setContentType(text/json;charsetutf-8);BaseResult baseResult new BaseResult(401,用户未登录,null);response.getWriter().write(JSON.toJSONString(baseResult));} }权限不足处理器 //权限不足处理器 public class MyAccessDeniedHandler implements AccessDeniedHandler {Overridepublic void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {response.setContentType(text/json;charsetutf-8);BaseResult baseResult new BaseResult(403,权限不足,null);response.getWriter().write(JSON.toJSONString(baseResult));} }2、编写配置类 提示1编写配置类的时候不要忘了PasswordEncoder密码解析器 提示2登录请求一定要是post请求否则无法请求无法到达 Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {//登录配置http.formLogin().usernameParameter(username)//登录用户名项.passwordParameter(password)//登录密码项.loginProcessingUrl(/admin/login)//登录提交路径.successHandler(new MyLoginSuccessHandler())//登录成功处理器.failureHandler(new MyLoginFailureHandler());//登录失败处理器//权限拦截器配置http.authorizeRequests().antMatchers(/login).permitAll()//登录页面不用拦截.antMatchers(/admin/login).permitAll()//登录路径不用拦截.anyRequest().authenticated();//其他路径都要拦截//注销配置http.logout().logoutUrl(/admin/logout)//注销提交路径.logoutSuccessHandler(new MyLogoutSuccessHandler())//注销成功处理器.invalidateHttpSession(true)//清除session.clearAuthentication(true);//清除认证状态//异常处理http.exceptionHandling().accessDeniedHandler(new MyAccessDeniedHandler())//权限不足处理器.authenticationEntryPoint(new MyAuthenticationEntryPoint());//未登录处理器//关闭csrf防护http.csrf().disable();//开启跨域访问http.cors();}Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();} }3、编写认证授权相关的mapper方法和service方法具体跟业务相关 4、编写认证和授权逻辑 编写逻辑的时候需要使用到认证和授权相关的mapper和service所以我们需要引入serviceservice中使用了相关mapper 具体流程 1、编写认证授权逻辑的类实现UserDetailsService接口重现loadUserByUserName方法         提示不要忘记将该类放入spring容器中不然security无法使用该逻辑 2、根据用户名查询用户 3、根据用户名查询相关权限 4、将用户的权限集合转换为security的权限集合 这个Permission.getUrl()很重要它就是用户拥有的权限所对应的url后期我们编写鉴权配置的时候就是通过这个url去判断该用户是否有对应权限的 5、构建UserDetails对象放入用户名、密码、security权限集合 6、返回构建好的UserDetails对象 //认证和授权逻辑 Service public class MyUserDetailsService implements UserDetailsService {DubboReference //需要使用到认证授权相关的mapper和serviceprivate AdminService adminService;Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {//根据用户名查询用户Admin admin adminService.findByUserName(username);if(admin null){throw new UsernameNotFoundException(用户未找到);}//根据用户名查询权限ListPermission permissions adminService.findAllPermission(username);//将我的权限集合转为security的权限集合ListGrantedAuthority grantedAuthorities new ArrayList();for (Permission permission:permissions) {//拿出权限中的url,方便日后的鉴权grantedAuthorities.add(new SimpleGrantedAuthority(permission.getUrl()));}UserDetails userDetails User.withUsername(admin.getUsername()).password(admin.getPassword()).authorities(grantedAuthorities).build();return userDetails;} }5、编写鉴权配置         1、在启动类上方开启注解配置访问权限 SpringBootApplication(exclude DataSourceAutoConfiguration.class)EnableGlobalMethodSecurity(prePostEnabled true) public class ShoppingManagerApiApplication {     public static void main(String[] args) {         SpringApplication.run(ShoppingManagerApiApplication.class, args);     } }           2、在相关控制器上方添加注解配置需要有的权限 /**      * 分页查询管理员      * param page 页数      * param size 每页条数      * return vo      */    PreAuthorize(hasAnyAuthority(/admin/search))     GetMapping(/search)     public BaseResultPageAdmin search(int page,int size){         PageAdmin adminPage adminService.search(page, size);         return BaseResult.ok(adminPage);     } 通过这个注解就会自动判断当前登录的用户是否有/admin/search权限这些权限的url都是我们在认证和授权逻辑的时候放入的 6、使用不同权限的用户登录查看他们是否能访问这些接口

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

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

相关文章

不错的建设工程人员查询汕头seo服务

1、问题 google第三方登录,如果已经登录过的账号点击可以登录&#xff0c;但是添加新的谷歌账号的时候提示&#xff0c;错误码为12501&#xff0c;整个人都不好了。 2、解决办法 AndroidManifest.xml里加上了如下信息 <meta-data android:name"com.google.android.g…

建网站公司用什么网站程序做宴会网站

题目链接。 分析&#xff1a; 《算法竞赛入门经典——训练指南》上的一道例&#xff08;水&#xff09;题&#xff0c;map的应用&#xff0c;个人感觉代码中注释掉的那一句没有什么意义&#xff0c;就注释掉了&#xff0c;提交确实也对了。 map的小知识点&#xff08;总结自c p…

网站怎么做百度快照logo安顺公司做网站

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机图像转换由Mono10转换为Mono8&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的Mono10转换为Mono8图的技术背景在NEOAPI SDK里实现相机图像由Mono10转换为Mono8格式 工业相机通过NEOAPI SDK实现相机图像转换的优…

电子商务网站建设可行性分析无锡网站制作公司报价

本文介绍基于NM24C08的EEPROM仿真设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 其中NM24C08是标准的2线总线接口的串行EEPROM&#xff0c;开机画面在LCD12864上显示 仿真图如下 仿真运行视频 Proteus仿真--基于NM24C08的EEPROM仿真设计 附完整Proteus仿真资料…

政务网站建设经验做法英文网站 icp备案号

51单片机DS1302万年历时钟温度12864显示仿真 1.主要功能&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单 51单片机DS1302万年历时钟温度12864显示仿真( proteus仿真程序报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 …

贵阳网站推广¥做下拉去118cr网页制作动画怎么做

Python是一种广泛使用的高级编程语言&#xff0c;以其简洁、易读和强大的功能而著称。近年来&#xff0c;Python使用人数不断增加。 Python有以下优点&#xff1a; 语法简洁 Python的语法简洁易懂&#xff0c;使得编写代码变得容易和高效。 跨平台 Python支持多种操作系统…

在英特尔上建设网站可选择的方案有单网站建设

“我有一个紧急视频会议&#xff0c;但是关键时刻我的笔记本电脑摄像头居然打不开了&#xff0c;真的让我很崩溃。有什么方法可以快速解决这个问题吗&#xff1f;非常感谢&#xff01;” 在互联网时代&#xff0c;电脑对我们来说非常重要。而借助电脑摄像头与朋友交流或者与同事…

如何写网站开发需求网站开发教程H5

MySQL代表了开源数据库的快速发展。 从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步&#xff0c;到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库&#xff0c;再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务&#xff0c;阿里云R…

网站建设运营协议书公司注册网站有什么好处

前端jd要求&#xff1a;了解一门后端开发语言优先 解决方案之Node.js 前言常见的后端开发语言一、什么是 Node.js二、学习 Node.js 的前置知识三、学习 Node.js 的步骤1、Node.js 的安装2、Node.js 的基本语法和 API模块导入和导出文件读写操作HTTP 服务器命令行参数 3、Node.j…

建设保障房网站首页网站支付功能报价

Author&#xff1a;rab 目录 前言一、构建缓存二、Pull 缓存总结 前言 首先我们要清楚&#xff0c;Docker 的镜像结构是分层的&#xff0c;镜像本身是只读的&#xff08;不管任何一层&#xff09;&#xff0c;当我们基于某镜像运行一个容器时&#xff0c;会有一个新的可写层被…

做五金国际网站哪个好公司网站抬头用什么软件做

首选得确定Jenkins的安装完整&#xff0c;还有插件的安装&#xff0c;除默认插件&#xff0c;此处必备插件&#xff1a;Publish Over SSH&#xff0c;SSH plugin&#xff0c;因为我源码在gitlab所以关于gitlab的插件我也安装了&#xff0c;看各自的情况选择安装。然后到系统管理…

前端做网站使用的软件工具广州网站建设技术

C程序设计语言 &#xff08;第二版&#xff09; 练习 4-5 练习 4-5 给计算器程序增加访问sin、exp与pow等库函数的操作。有关这些库函数的详细信息&#xff0c;参见附录B.4节中的头文件<math.h>。 注意&#xff1a;代码在win32控制台运行&#xff0c;在不同的IDE环境下…

做搜狗手机网站优化点积分商城平台

目录 1. 程序的翻译环境和执行环境 2. 详解编译链接 2.1 翻译环境 2.2 编译本身也分为几个阶段&#xff1a; 2.3 运行环境 3. 预处理详解 3.1 预定义符号 3.2 #define 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3 #define 替换规则 3.2.4 #和## 1. 程序的翻译环境和执…

站长是什么职位建设一个私人视频网站

2012年我入职TCL&#xff0c;在TCL我体会到了团队建设的文化&#xff0c;也正是经历了那段职场&#xff0c;我明白了很多「可意味不可言传」。那时候我们经常五十成群出去吃饭、喝酒、唱歌&#xff1b;上学那会我很不喜欢团队活动&#xff0c;特别是室内的活动&#xff0c;总感…

深圳市南山网站建设上海住建部网站

目录 一、目标1&#xff1a;调用exe文件 二、目标2&#xff1a;调用exe打开文件 一、目标1&#xff1a;调用exe文件 1、subprocess 模块允许在 Python 中启动一个新的进程&#xff0c;并与其进行交互 2、subprocess.run() 函数来启动exe文件 3、subprocess.run(["文件路…

阅读网站建设中国建设教育协会是个什么网站

根据sql解析获取到表到表, 字段到字段间的关系,即血缘关系。实际上这是从sql文本获取到数据流的过程。 大致步骤如下&#xff1a; 1.sql文本进行词法分析 2.sql语法分析获取到AST抽象语法树 3.访问AST抽象语法树根据语法结构推测出数据的流向,例如create as select from 这种结…

wifiu盘做网站陕西网站备案注销

一、算法思想 给定一个无序数列&#xff0c;模拟一个指针从第0位开始向后&#xff0c;始终保持当前位置左边的数列是有序的。 指针位置上的元素依次与前面的元素比较&#xff0c;当遇到小于自己的数或右边已经没有元素时&#xff0c;都停止比较&#xff0c;开始下一轮。 生活…

深圳龙岗高端网站建设网站程序开发外包

Transformer概述 相比LSTM和GRU模型&#xff0c;Transformer模型有两个显著的优势&#xff1a; Transformer能够利用分布式GPU进行并行训练&#xff0c;提升模型训练效率。 在分析预测更长的文本时&#xff0c;捕捉间隔较长的语义关联效果更好。 Transformer模型的作用 基于seq…

网站开发公司照片网站建设调研

在部署一个cms项目到服务器上的时候&#xff0c;因为cms的模板比较老&#xff0c;服务器上用的php是5.3.3版&#xff08;大于5.3&#xff0c;可以认为是新的&#xff09;&#xff0c;有些页面会显示“deprecated”类别的错误信息。安全起见要抑制页面中的错误信息输出&#xff…

学做网站的书哪些好定制网站报价

入口我们从使用功能上去读取源码&#xff0c;通常的用法是这个样子-> 我们设置layoutmanager&#xff0c;GridLayouManager 继承LinearLayoutManager&#xff0c;所以我们就LinearLayoutManager 为基准查看rv.layoutManager GridLayoutManager(this,5)rv.addItemDecoration…