解决shiro重定向URL中出现sessionID的情况localhost:8080/toLogin;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案) 本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。 阅读详情

先直接说解决办法:
直接在shiro配置类中添加一下代码就能解决:

@Configuration
public class MyShiroConfig {
    /**
     * 解决shiro的URL中出现sessionID的情况
     * EG: localhost:8080/toLogin;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4
     * @return
     */
    @Bean
    public DefaultWebSessionManager sessionManager() {
        DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
        defaultWebSessionManager.setSessionIdUrlRewritingEnabled(false);
        return defaultWebSessionManager;
    }
}

然后将该bean注入到DefaultWebSecurityManagerbean中即可,一下是完整写法:

@Bean(name = "securityManager")
    public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("realm") MyRealm myRealm, @Qualifier("webSessionManager") DefaultWebSessionManager sessionManager) {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(myRealm);
        securityManager.setSessionManager(sessionManager);
        return securityManager;
    }
/**
     * 解决shiro的URL中出现sessionID的情况
     * EG: localhost:8080/toLogin;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4
     * @return
     */
    @Bean
    @Qualifier("webSessionManager")
    public DefaultWebSessionManager sessionManager() {
        DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
        defaultWebSessionManager.setSessionIdUrlRewritingEnabled(false);
        return defaultWebSessionManager;
    }

添加后重启项目就会生效,URL中不会出现类似;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4的sessionID信息

关于这个问题是怎么出现的,可以大致这样理解:
1、当访问localhost:8080/,测试shiro进行拦截发现还没登录,则shiro则会在内部进行一个重定向到localhost:8080/toLogin
2、但是server服务器并不知道是shiro的重定向,重定向的请求中没有session、cookie等信息,服务器就会以为是客户端禁用了该功能,所以服务器就自动为其分配一个sessionid
3、所以响应到客户端的url就被添加上了sessionid

ROS开发者的福音:用Anaconda虚拟环境解决Python包冲突(附完整配置流程) 本文为ROS开发者提供了使用Anaconda虚拟环境解决Python包冲突的完整方案。通过分析冲突根源,详细介绍了Miniconda安装、专用环境创建以及核心桥梁包的配置流程,并阐述了“混合环境运行”与“纯虚拟环境构建”两种实战工作流,帮助开发者实现ROS核心与特定Python库的和谐共存,从而提升开发效率和项目可维护性。 阅读详情

相关推荐

从飞机翼型仿真到燃烧模拟:Fluent多物理场耦合的3种实战策略

本文深入探讨了Fluent在多物理场耦合仿真中的三种实战策略,涵盖可压缩流动与燃烧耦合、湍流模型选择及网格策略,以及顺序耦合、强耦合和混合耦合方法。通过具体案例和工程实践,帮助中高级用户提升仿真精度和效率,适用于航空航天和能源化工等领域。

aa123的博客 993

shiro 重定向携带 JSESSIONID 问题解决

shiro 请求头携带错误的 token 的问题

qq_29411043的博客 5232

【脑电分析系列】第15篇:脑电功能连接性与脑网络分析(二):Granger因果性、图论指标与复杂网络构建

摘要: 本文深入探讨了脑电(EEG)分析中的高阶连接性方法——有效连接(Effective Connectivity),重点介绍了Granger因果性(Granger Causality, GC)的原理与应用。GC通过统计预测揭示脑区间信息流动方向,超越了传统功能连接的同步性分析。文章还结合图论指标(如度、路径长度、聚类系数和模块化)量化脑网络的拓扑结构,并通过Python代码(MNE和NetworkX库)演示了从EEG数据构建、分析复杂脑网络的完整流程。该研究为理解大脑动态互动、认知任务信息流及神经系统疾

qq_32516809的博客 1559

关于shiro重定向后链接带jsessionid问题

shiro重定向后链接带jsessionid 我是在shiro中使用拦截跳转登录界面时,带jsessionid。 解决方法 原因 因为页面提示的是非法请求,所以就是URL带了 ;jsessionid=98CADF5DA49F4A76E 导致请求为非法请求 解决 在shiroConfig中加入 @Bean public DefaultWebSessionManager SessionManager(){ DefaultWebSessionManager defaultSes

_小曾 1565

Keil MDK编译错误#541解决方案与ARM_Compiler包解析

在嵌入式开发中,编译器工具链的依赖管理是确保项目顺利构建的关键环节。以Keil MDK为例,其软件包依赖机制通过组件化设计实现功能解耦,其中ARM_Compiler包专门处理系统IO重定向等编译器扩展功能。这种架构既提升了模块复用性,也带来了版本兼容性挑战。当出现'Error #541: component missing'报错时,通常是由于中间件组件(如文件系统)在新版本中显式依赖了ARM_Compiler包。开发者需要通过Pack Installer安装该包,并在Run-Time Environment

weixin_32129187的博客 363

告别路径打架!用Python实现CBS算法搞定仓库机器人调度(附完整代码)

本文详细介绍了如何使用Python实现CBS(Conflict-Based Search)算法解决仓库机器人调度中的路径冲突问题。通过多智能体路径规划(MAPF)技术,有效避免AGV在智能仓库中的碰撞和死锁,提供完整代码实现和工业场景优化技巧,帮助开发者快速构建高效的机器人调度系统。

weixin_30275415的博客 327

shiro重定向时URL中的JSESSIONID问题

最近开始在项目中使用shiro作为权限控制,配置成功后,访问一切正常。但发现在向登录页面重定向时,URL中总是待;JSESSIONID=****,这时Session的另一种使用方式(一种是Cookie)。本来也不影响使用,但是据说这种方式有漏洞,再就是这样看着实在是不爽。那怎么去掉呢? 第一步:刚开始我以为是tomcat的问题,于是就百度了下tomcat怎么取消url中的JSESSIONID。

魏晋风范 1万+

储能电池管理系统介绍(一)

介绍储能BMS的架构以及各模块功能

manjixingkong1234的专栏 1914

解决Shiro第一次重定向url携带jsessionid问题

Shiro在进行第一次重定向时会在url后携带jsessionid,导致访问400。 实力有限,就不分析源码了,需要了解原因的可以查看ShiroHttpServletResponse类中encodeRedirectURL、encodeRedirectUrl、toEncoded等方法,直接说下解决办法 解决办法: 创建一个DefaultWebSessionManager类实例,并将它的sessionIdUrlRewritingEnabled属性设置成false 再在DefaultWebSecurityMan

Ruanes的博客 2985

PyInstaller打包后在Win7无法运行,提示缺少`api-ms-win-core-path-l1-1-0.dll`问题解决

这个问题的关键在于Python 3.12和Windows 7之间的兼容性问题。解决方法是使用Python 3.8.8版本进行打包,确保程序能够在Windows 7系统上运行。如果你也遇到类似的问题,不妨尝试降级Python版本,看看是否能够解决。希望我的经验能够帮到你!如果你在使用PyInstaller打包时遇到其他问题,欢迎留言讨论。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 991

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

zhengzaifeidelushang的博客 3290

解决Shiro第一次重定向url带有jsessionid导致400错误

在Shiro进行第一次重定向时,会在url后携带jsessionid,这会导致400错误(无法找到该网页)。 原因在于ShiroHttpServletResponse配置类的doIsEncodeable当中,会将url自动拼接jsessionid。 解决办法: 在Shiro的配置类中的sessionManager()方法中,将sessionIdUrlRewritingEnabled属性设置为false。该方法返回一个DefaultWebSessionManager实例。 将上面方法返回的实例设置为Defa

shellhard的博客 2992

基于STM32的浴室环境智能控制系统设计

摘要:本文设计了一款基于STM32F103的智能卫浴系统,通过多传感器协同检测浴室环境参数。系统采用DS18B20检测环境与卫浴温度,DHT11监测湿度,MQ-135检测空气质量,光敏电阻测量光照强度,D203S人体热释电模块检测人员存在。当检测到异常参数时,系统自动启动相应调节功能:温度异常时控制加热/制冷继电器,湿度过高时启动通风除湿,空气质量差时进行换气,光照不足且有人时自动开灯。系统支持按键、蓝牙APP和语音三种控制方式,可手动设置参数阈值、切换防雾模式、控制音乐播放等功能。实验结果表明,该系统能有

3254968421的博客 482

重定向出现jsessionid=xxx路径的问题

web.xml文件配置第一点,注意配置版本为3.0版本,Servlet3.0规范中的<tracking-mode>允许你定义JSESSIONID是存储在cookie中还是URL参数中。如果会话ID存储在URL中,那么它可能会被无意的存储在多个地方,包括浏览器历史、代理服务器日志、引用日志和web日志等。暴露了会话ID使得网站被session劫持***的几率大增。然而,确保JSESSIO...

u011709128的专栏 4444

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

shiro整合单点登录,setLoginUrl重定向地址会携带JSESSIONID的问题

今天遇到一个问题,在springboot+shiro整合的项目中,单点登录,当登录过期时使用setLoginUrl 设置重定向地址,然后这个地址返回一个登录过期请重新登录的提示给前端,然后前端控制页面跳转到登录页面。 问题就出在重定向的时候,setLoginUrl 设置的地址总是会携带JSESSIONID,就一直报302错误 具体情况如下: ShiroConfig配置类 //省略其他配置 /** * Shiro基础配置 */ @Bean public ShiroFilterFactoryBean sh

weixin_43165220的博客 3684

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

springboot项目前后端分离使用shiro的情况解决sessionid不同问题

遇到的问题 开发中遇到开发app或者前后端分离的项目时候,使用ajax等方式向后台访问的时候session每次都不同,这样使用shiro验证全是不能通过.原来我们使用的是token的方式,可以自己通过验证token来实现权限判断问题,但是使用shiro我们还需要自己重写权限判断.那么如何实现shiro中通过token来进行sessionid不变呢. 我们通过配置shiro的session管理器来解...

chenyidong521的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SpringBoot整合Apache Shiro 重定向时去掉URL中的JSESSIONID--重写getSessionId方式

SpringBoot整合Apache Shiro 重定向时去掉URL中的JSESSIONID--重写getSessionId方式

闲言 1349

去掉shiro登录时url里的JSESSIONID

经过查找论坛和分析源码,确认了是在ShiroHttpServletResponse里加上的。 因此extends,覆盖相应方法,把添加JSESSIONID部分去掉。 [code="java"] public class MyShiroHttpServletResponse extends ShiroHttpServletResponse { public MyShiroHttpServ...

dwangel 975

解决Shiro框架URL中带JSESSIONID的问题

shiro版本在1.3.2版本以上已修复该问题,只需要在shiro配置文件添加以下配置即可: <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> <!--避免url中出现jsessionid 2017-11-04修改--> <property name="sessionIdUrlRewritingEnable

weixin_39093006的博客 1276

shiro重定向url去除JSSESSIONID

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34176694的博客 544

springmvc+shiro 同一会话,后台获取的sessionid不一致问题

SecurityUtils.getSubject().getPrincipal()为null,shiro 同一会话sessionid不一致

一个程序员的专栏 2195

Shiro的学习

Apache Shiro 是 Java 的一个安全(权限)框架。它可以非常容易的开发出足够安全的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境 。 Shiro可以完成:认证、授权、加密、会话管理、与Web 集成、缓存 等。下载:http://shiro.apache.org/ 或 https://github.com/apache/shiro 功能介绍 S...

weixin_30917213的博客 196

解决shiro升级1.6后url拼接;jsession引发400问题

在shiro.xml文件中添加配置 配置解析 1、添加 sessionManager bean <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> <!-- 去掉url ;jsessionid= --> <propert...

bgxabc的博客 1750

记一次sessionId登陆后变化问题

由于是偶发情况,查找特别麻烦,经过一天的查找问题,终于定位到问题了,登陆页面有好几个字体路径是404,把样式内的字体删掉问题就解决了。系统用的spring+shiro+mybatis,偶尔登陆之后要么闪退,要么进去首页后又跳转到登陆页。

weixin_43275523的博客 564

Shiro登录记录请求地址的问题解决

Shiro在登录失败的情况下记录了上次请求的地址 产生的原因: 通常我们使用shiro,登录之后就会跳到我们上一次访问的URL,如果我们是直接访问登录页面的话,shiro就会根据我们配置的successUrl去重定向。 1、shiro会把请求信息保存到session中: 在WebUtils工具类中保存了当前请求地址的路径 public static void saveRe...

失忆๑的博客 703

Shiro自定义获取sessionid的方式

一、创建一个自定义的session管理类,继承shiro默认的session管理类(DefaultWebSessionManger),重写getSessionId()方法,token为自定义请求头,值传的是sessionid。二、在Shiro配置类中创建一个返回安全管理器SecurityManager的bean方法,并设置session管理器为自定义的session管理器。

qq_45644484的博客 2102
上一篇: 二叉树的递归和非递归方式实现的前中后序遍历(Java版本个人笔记)
下一篇: Zookeeper最新下载地址及下载、安装注意事项
JavaWizard-M
博客等级 码龄6年 3159粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值