weblogic 访问返回401-Unauthorized

CVE-2017-1000028漏洞剖析:从GlassFish信息泄露到管理员权限获取 信息泄露漏洞是Web安全领域常见的高风险威胁,其原理在于应用程序错误处理机制不当,导致敏感数据在错误响应中意外暴露。这类漏洞的技术价值在于往往成为攻击链的初始入口,为后续权限提升提供关键情报。在Java应用服务器场景中,配置信息、数据库连接字符串等核心数据泄露可能直接导致系统沦陷。CVE-2017-1000028正是GlassFish应用服务器REST管理接口存在的典型信息泄露漏洞,攻击者通过构造特定请求即可获取包含数据库凭证的JDBC连接字符串。利用该漏洞,攻击者可以连接配置数据库提取管理员密码哈希,结合 阅读详情
```
0HTTP/1.1 401 Unauthorized
Connection: Keep-Alive
Date: Mon, 11 Sep 2017 09:37:51 GMT
Content-Length: 1468
Content-Type: text/html; charset=UTF-8
WWW-Authenticate: Basic realm="WebLogic Server"
X-Powered-By: Servlet/2.5 JSP/2.1

原因是,weblogic默认会对包含http basic认证头的请求进行验证(weblogic自己的验证),
也就是说,发给应用程序用的认证信息被weblogic拦截了。

要禁用weblogin的认证,可以编辑domain下的config.xml,
在security-configuration节点内,增加下面一句话。

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

查考:
http://blog.chinaunix.net/xmlrpc.php?=blog/article&uid=24648266&id=5732277

从HTTP协议到认证绕过:深度剖析JBoss CVE-2010-0738漏洞利用链 HTTP协议定义了多种请求方法,其中HEAD方法用于获取资源元信息而不返回消息体。在Web应用安全中,认证与授权机制需要对所有HTTP方法进行一致性校验,否则可能产生逻辑漏洞。这种因协议处理不一致导致的安全问题,在中间件和框架的历史版本中尤为典型,其技术价值在于揭示了安全设计需覆盖协议全貌的重要性。CVE-2010-0738正是JBoss AS 4.x中因安全约束未涵盖HEAD方法,导致JMX控制台认证被绕过的经典案例。攻击者利用此漏洞,结合JMX的MBean部署功能,可实现从认证绕过到远程代码执行的完整攻 阅读详情

相关推荐

Rocky Linux 8 下部署 Squid 正向代理实战指南

Squid 是一款专为缓存、访问控制与审计设计的企业级 HTTP/HTTPS 代理服务器,其核心能力包括细粒度 ACL 策略、分层缓存管理、透明代理支持及完整日志体系。相较于 Nginx 等通用反向代理,Squid 在正向代理场景中具备协议解析深度(如 Cache-Control、ETag)、客户端无感接入和生产级稳定性等不可替代优势。在 Rocky Linux 8 这一主流 CentOS 替代发行版上部署 Squid,需特别关注 SELinux 上下文策略、systemd-resolved 引起的 DNS

440

WebLogic 上WebServices 总是提示 401 Unauthorized 异常的一种情况!

异常信息: AxisFault  faultCode: {http://xml.apache.org/axis/}HTTP  faultSubcode:   faultString: (401)Unauthorized  faultActor:   faultNode:   faultDetail:  {}:return code:  401 <!DOCTYPE HTML

anqixing的专栏 8470

零日漏洞与漏洞利用:从原理到防御的实战解析

在网络安全领域,漏洞是攻击者入侵系统的关键入口,而漏洞利用则是将理论威胁转化为实际攻击的技术手段。其核心原理在于通过精心构造的输入数据,触发软件或硬件中存在的安全缺陷,进而实现控制流劫持、权限提升或数据窃取等恶意目标。理解漏洞利用的技术价值,不仅在于揭示攻击链条,更在于指导我们构建更有效的纵深防御体系。无论是针对内存破坏漏洞的ROP链构造,还是利用逻辑缺陷进行未授权访问,这些技术都广泛应用于高级持续性威胁、数据窃取和系统破坏等场景。本文以零日漏洞和漏洞利用为焦点,结合Kali Linux等实战工具与CVE-

weixin_30527323的博客 411

weblogic oauth 401 错误

oauth服务。原本在tomcat下运行正常。改用weblogic后无端的包401错误。官方解决方案:https://docs.oracle.com/cd/E12840_01/wls/docs103/security/thin_client.html#understanding_basic_atnUnderstanding BASIC Authentication with Unsecured R...

天天的专栏 2014

免费获取DeepSeek-R1 API密钥:硅基流动平台注册与VSCode配置全攻略

API(应用程序编程接口)是现代软件开发的基石,它定义了不同软件组件之间的通信协议。在人工智能领域,大语言模型通过API提供服务,使开发者能够将先进的自然语言处理能力集成到自己的应用中。这种技术架构的价值在于降低了AI技术的使用门槛,让开发者无需从头训练模型即可获得智能对话、代码生成等能力。硅基流动作为API聚合平台,通过统一接口接入多家模型供应商的服务,为用户提供了简化的获取途径和免费额度。在实际工程实践中,开发者常使用VSCode等IDE插件来调用AI服务,这需要正确配置API密钥、端点地址和模型参数。

weixin_34405557的博客 459

MuleSoft+LLM企业级AI编排:安全、可审计、高可用的智能工作流落地实践

大语言模型(LLM)在企业落地的核心瓶颈,从来不是生成能力,而是如何与真实业务系统安全、可靠、合规地协同。AI编排(AI Orchestration)作为连接LLM认知层与企业服务总线的关键范式,需同时解决意图理解、多源数据编织、上下文管理、权限控制与事务一致性五大挑战。MuleSoft凭借DataWeave数据转换、Object Store状态管理、Policy网关治理及Anypoint全链路可观测能力,天然适配LLM在金融、制造、零售等强监管场景的集成需求。本文聚焦MuleSoft与LLM深度协同的技术

weixin_30475039的博客 538

Weblogic配置basic认证(详细教程)

weblogic 配置 basic 认证

空即是色,色即是空 1177

Unieap企业级Java开发快速上手指南:5分钟跑通最小闭环项目

Unieap是面向政企、金融等传统行业的国产化Java企业应用平台,基于Spring+Hibernate深度定制,强调规范约束与系统集成能力。其核心原理在于统一的分层架构(Controller-Service-DAO-Entity)、平台级会话管理(UnieapSession)和专属标签库驱动的JSP前端体系。技术价值体现在降低大型遗留系统维护门槛、保障多租户/组织权限/审计字段等企业级能力开箱即用。典型应用场景包括老系统快速验证、新人沙盒培训、审批流原型开发及向微服务渐进式演进。本文以一个可运行的最小闭环

weixin_31412781的博客 260

weblogic安装时建域报错

安装完weblogic软件之后建域报错: webapp@db1 bin]$ ./config.sh ./config.sh: line 103: /usr/lib/jvm/java-1...

ctols1654的博客 711

从零实现机械臂抓取仿真:用MoveIt+Gazebo完成物体pick&place全流程

本文详细介绍了如何使用ROS的MoveIt框架与Gazebo仿真环境,从零构建机械臂抓取仿真系统。涵盖环境搭建、MoveIt配置、Gazebo集成、抓取动作实现等全流程,帮助开发者掌握机械臂控制的核心技术,实现高效的pick&place任务。

weixin_29250403的博客 475

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

Zabbix 4 监控 WebLogic 12C:JMX 接入与告警配置实战

中间件是业务系统的核心枢纽,但 CPU、内存等系统资源监控往往掩盖了线程池耗尽、JMS 积压、JDBC 连接枯竭等致命问题。JMX 是 Java 中间件暴露运行时状态的标准协议,通过 MBean 统一描述线程池、数据源、JVM 堆等指标。Zabbix 4 借助 Java gateway 或 Jolokia 可以将这些 MBean 属性转为可视化监控项与告警触发器,让运维从“能 ping 通”进化为“看到中间件心跳”。这类方案适用于 WebLogic 12C、WebSphere 等商业中间件,以及基于 JVM

weixin_34127717的博客 326

高效爬取懂车帝车型数据:从静态解析到动态反爬实战

本文详细解析了如何高效爬取懂车帝车型数据,从静态HTML解析到动态接口反爬的完整实战路径。文章重点介绍了使用浏览器开发者工具定位数据、应对CSS混淆与参数加密等反爬策略,并提供了整合静态与动态抓取逻辑的Python代码示例,帮助开发者稳健地获取结构化车型信息。

wind6的博客 935

WELOGIC&TOMCAT禁用OPTIONS方法

1、验证是否允许使用OPTIONS方法请求 curl -v -X OPTIONS http://IP:PORT/SERVLETNAME 如:curl -v -X OPTIONS http://127.0.0.1:2438/custserv 如果允许OPTIONS方法则返回如下: * About to connect() to 127.0.0.1 port 2438 (#0) * Tr...

sdjzuch的专栏 2029

第28节:cesium 加载高程数据(含源码+视频)

cesium 加载高程(地形)数据

qq_29384639的博客 1740

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3501

ChatGPT报错诊断七步法:从HTTP状态码到根因定位

ChatGPT报错本质是API集成过程中的协议对齐失败,而非模型服务崩溃。其核心原理在于客户端、网络层、认证链路与服务端四者间的通信协同机制。技术价值体现在可复用的工程化诊断能力——通过curl验证基础连通性、Network面板分析真实请求、TLS握手检查、代理穿透测试等手段,快速区分是前端环境缺失(如process is not defined)、认证失效(如401 Unauthorized),还是服务端限流(如429 Too Many Requests)。典型应用场景覆盖Vite/React前端集成、企

weixin_30247781的博客 452

【学习系列】SAP RAP 7:行为定义-Draft

本文介绍了RAP框架中的草稿表(Draft)功能及其应用。草稿表允许用户临时保存数据,在激活前不影响业务逻辑,支持保存继续、暂存和设备切换功能。草稿分为独占草稿(仅限同一用户编辑)和协作草稿(允许多用户协同编辑)。启用草稿需在行为定义和投影中包含标准action,并创建包含TotalETag等管理字段的草稿表。TotalETag确保草稿转换时活动数据未被修改,而ETagmaster则防止并发修改。文章通过OData调用示例详细说明了ETag验证过程,强调草稿功能由RAP框架自动处理,开发者只需关注定义和配置

DeveloperMrMeng的博客 438

UltraEdit 十六进制转换查看系统日志:TaoToken 统一 Key 接入与 config.toml 配置骨架

用 UltraEdit 十六进制转换排查系统日志乱码,先看文件头判断编码再修正,配合 TaoToken 统一 Key 接入与 config.toml 配置骨架,把日志查看与 AI 辅助分析串成一条链路。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 提供统一入口,附报错排查清单。

weixin_42583683的博客 149

荣耀Magic 6 dToF LiDAR Android阵营全球第一首发

40X30分辨率的BSI SPAD小面阵,帧率达到60帧,搭配多传感器融合算法, 可产生足够的稠密点云,为应用设备提供可靠的距离传感。在手机消费电子方案中,dToF LiDAR技术不仅提升了手机的功能和用户体验,还为手机厂商提供了差异化的竞争优势。随着技术的不断进步和市场的快速发展,我们可以期待未来dToF LiDAR技术将在手机领域发挥更大的作用,为用户带来更多创新和便捷的功能。增强现实(AR)体验:通过dToF LiDAR提供的高精度深度信息,手机可以更准确地放置虚拟物体在现实世界的表面上。

致力于lidar应用开发 19万+

yolov5改进之Fasternet主干网络替换

fasternet替换yolov5主干网络

qq_41920323的博客 5143

MuleSoft+LangChain企业AI流水线:打通数据流、控制流与权限流

企业级AI落地的核心挑战并非模型能力不足,而是数据流、控制流与权限流在多系统间缺乏协同治理。MuleSoft作为成熟的企业集成平台,擅长协议转换、状态感知路由与合规性熔断,为大模型提供确定性、可审计的数据供给;LangChain则聚焦于模糊需求理解与生成式推理,需依赖结构化输入才能稳定发挥价值。二者结合,本质是构建一条‘确定性基础设施+不确定性智能层’的AI流水线,支撑销售预测、客户挽留、智能知识库等高价值场景。本文深入解析MuleSoft与LangChain如何通过四段式握手协议、语义对齐模型与动态治理注

weixin_33801856的博客 644

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

CentOS 6 部署 Squid 代理实战:解决 yum/pip/npm 网络失败

HTTP 代理是实现内网访问外网资源的基础网络中间件,其核心原理在于拦截客户端请求、转发至上游服务器并缓存响应。在老旧系统运维中,Squid 因支持 RFC 7230 协议、可审计日志、细粒度 ACL 控制等特性,成为 CentOS 6 等 EOL 系统维持软件更新能力的关键技术方案。它通过缓存加速(如 RPM、wheel、tgz 文件)、协议兼容(HTTPS SSL Bump、ALPN 修复)和透明重定向(iptables + dstdomain),有效应对 `yum源不能用`、`pip install

weixin_33795743的博客 395

深度学习工具包 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")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MuleSoft作为AI工作流操作系统:企业级LLM编排实战

在企业AI落地过程中,大语言模型(LLM)面临协议异构、治理缺失与可观测性不足三大断层。AI编排(AI Orchestration)并非简单链式调用,而是融合状态管理、上下文流转、多系统协同与安全熔断的工程化能力。MuleSoft凭借原生连接器、Policy Manager策略治理、Anypoint Monitoring端到端追踪及DataWeave数据编织等核心能力,将LLM无缝嵌入现有IT资产,实现从API网关到AI工作流操作系统的升级。本文聚焦真实产线场景,详解如何利用MuleSoft完成Prompt

weixin_33768481的博客 459

AI编排实战:MuleSoft与LangChain协同落地企业级AI

AI编排(AI Orchestration)是连接大语言模型与企业核心系统的关键工程范式,其本质在于解决数据主权、安全治理与业务语义鸿沟三大刚性约束。它并非简单调用LLM API,而是通过分层架构实现数据接入、转换、推理与交付的职责分离——MuleSoft承担企业级连接、审计日志与策略管控,LangChain专注上下文理解与生成逻辑。该模式显著提升AI服务的合规性、可维护性与端到端确定性,广泛应用于销售风险分析、智能工单处理、跨系统决策辅助等需强集成、高可信的生产场景。

weixin_33875839的博客 390
上一篇: 错误总结-apache-CXF
ylan000
博客等级 码龄17年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值