系统开放相应接口给第三方平台

news/发布时间2024/5/17 17:57:19

SpringSecurity放行接口,匿名访问

@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter
{/*** 自定义用户认证逻辑*/@Autowiredprivate UserDetailsService userDetailsService;/*** 认证失败处理类*/@Autowiredprivate AuthenticationEntryPointImpl unauthorizedHandler;/*** 退出处理类*/@Autowiredprivate LogoutSuccessHandlerImpl logoutSuccessHandler;/*** token认证过滤器*/@Autowiredprivate JwtAuthenticationTokenFilter authenticationTokenFilter;/*** 跨域过滤器*/@Autowiredprivate CorsFilter corsFilter;/*** 允许匿名访问的地址*/@Autowiredprivate PermitAllUrlProperties permitAllUrl;/*** 解决 无法直接注入 AuthenticationManager** @return* @throws Exception*/@Bean@Overridepublic AuthenticationManager authenticationManagerBean() throws Exception{return super.authenticationManagerBean();}/*** anyRequest          |   匹配所有请求路径* access              |   SpringEl表达式结果为true时可以访问* anonymous           |   匿名可以访问* denyAll             |   用户不能访问* fullyAuthenticated  |   用户完全认证可以访问(非remember-me下自动登录)* hasAnyAuthority     |   如果有参数,参数表示权限,则其中任何一个权限可以访问* hasAnyRole          |   如果有参数,参数表示角色,则其中任何一个角色可以访问* hasAuthority        |   如果有参数,参数表示权限,则其权限可以访问* hasIpAddress        |   如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问* hasRole             |   如果有参数,参数表示角色,则其角色可以访问* permitAll           |   用户可以任意访问* rememberMe          |   允许通过remember-me登录的用户访问* authenticated       |   用户登录后可访问*/@Overrideprotected void configure(HttpSecurity httpSecurity) throws Exception{// 注解标记允许匿名访问的urlExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = httpSecurity.authorizeRequests();permitAllUrl.getUrls().forEach(url -> registry.antMatchers(url).permitAll());httpSecurity// CSRF禁用,因为不使用session.csrf().disable()// 认证失败处理类.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()// 基于token,所以不需要session.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()// 过滤请求.authorizeRequests()// 对于登录login 注册register 验证码captchaImage 允许匿名访问.antMatchers("/login", "/register", "/d/v1/*", "/captchaImage").anonymous()// 静态资源,可匿名访问.antMatchers("/static/**","/bdcloud/**","/onbdcloud/**").permitAll().antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**","/**/*.png","/**/*.jpg","/**/*.icon","/**/*.ttf").permitAll().antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()// 除上面外的所有请求全部需要鉴权认证.anyRequest().authenticated().and().headers().frameOptions().disable();// 添加Logout filterhttpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);// 添加JWT filterhttpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);// 添加CORS filterhttpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);}/*** 强散列哈希加密实现*/@Beanpublic BCryptPasswordEncoder bCryptPasswordEncoder(){return new BCryptPasswordEncoder();}/*** 身份认证接口*/@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception{auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());}
}

 

我方主动将数据推送到kafka等消息队列

 

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

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

相关文章

4412板卡, usb hub 经常烧掉

问题: usb hub 经常烧坏。解决:参考3588 底板的 USB的设计。

arcgis用一个图层分割另一个图层

现有用线图层A、面图层B,需使用A图层分割B图层,操作步骤如下: 1、打开Editor编镇工具条,单击Start Editing开始编辑。2、鼠标选中线对象,或者全选线图层(右键单机线图层A依次执行“选择/选择全部”)。 3、打开Advanced editing工具条。 4、选择split polygons, 点确定后…

肖SIR__ 项目文档(1)_17.0

一、需求是如何进行分析的? 1、显性需求(主流程、业务、功能) 例如:需求上明确编写的功能 2、隐性需求 例如:需求上没有明确编写的功能, 发红包流程,隐形需求(红包记录,红包统计) 3、特殊需求 年化收益率3.65%*10000/365=1块 比如:计算公式 4、关联需求 比如:修改了a模块,b模…

解决Microsoft Store微软应用商店打不开的问题

1.打开控制面板2.点击网络和Internet3.点击“Internet 选项”4.点击高级5.将TLS1.1TLS1.2TLS1.3都勾选上,并重启计算机

python json格式转url参数分割, url参数转json格式

前言全局说明一、 json格式转url参数&分割 >>> from urllib.parse import urlencode >>> params = { user: admin, pwd: 123456} >>> print(urlencode(params))二、url参数转json格式 >>> import json >>> data = "user…

如何在cmd窗口关闭情况下保持后台启动docsify?

1. 首先我们知道docsify的启动命令操作如下: 1.1 在docsify的主目录(index.html)下启动cmd命令1.2 在当前路径下的cmd窗口执行docsify启动命令: docsify serve1.3 这样我们打开任意浏览器,在浏览器窗口输入如下命令,即可看到我们本地启动的docsify的界面 http://127.0.0.1:…