在我们使用Java调用远程接口或是抓取数据时经常会发生以下错误: Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.valid
官网:http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
1. 为什么需要性能监控? 有时我们会发现Java程序在运行一段时间之后速度会变慢,导致变慢的原因有很多,比如数据库延迟太高,线程死锁,频繁的Full GC等等。通常遇到这种情况时,我们可以通过top或htop命令查看Java进程的CPU和内存的占用情况,但是无法准确的找出系统变慢的原因。这时我们就需要一种方式可以实时的查看Java虚拟机的运行情况,进而发现系统变慢的原因。本文将介绍如何通过JMX进行Java性能的远程监视。 2. 什么是JMX? JMX(Java Managemen
上面这个问题归结起来就是无法验证网站的证书,找不到证书验证链 针对这个问题,Java的证书验证系统与其他不同,将代理工具生成的证书作为可信根证书导入系统证书库,是存在问题的。在java的认证需要使用JRE中证书库,所有必须把代理工具的证书加入到JRE的证书库中。下面解决步骤:
由于安全原因,需要对HDFS UI等端口进行限制访问,也就是配置kerberos认证,在core-site.xml文件中进行如下配置:
为了应用服务能够持续稳定地对外提供服务,除了在部署的时候尽量采用分布式、集群服务等方式提高 ZooKeeper 服务的可靠性外,在服务上线运行的时候,我们还可以通过对 ZooKeeper 服务的运行状态进行监控,如运行 ZooKeeper 服务的生产服务器的 CPU 、内存、磁盘等使用情况来达到目的。在系统性能达到瓶颈的时候,可以增加服务器资源,以保证服务的稳定性。
对于Java初学者,经常会听到同事,或看到网上Java版本和JDK版本不一的叫法,不明白这两者到底什么关系?其实博主当年初学Java时也有这样的困惑,今天我们就来好好探讨一下,如有不对之处,请加以指正,不喜勿喷,谢谢!
总述 https简单来说就是在http协议的基础上增加了一层安全协议。通常为TLS或者SSL(一般现在都采用TLS,更加安全)。这一层安全协议的最主要的作用有两个: 1. 验证服务端或客户端的合法性
一些C语言的接口见上一篇文章 同样把用到的动态库放到jdk的bin目录文件夹下 Termb.java
两年后Sun终于发布了开源的OPENJDK,同时发布了基于开源协定GNU GPLv2的用于桌面西系统的Java 标准版(Java SE),以及用于移动设备的Java 移动版(Java ME),Sun希望GPLv2能够为Java带来更多的用户,并且宣称Java会继续保持“一次编写、到处运行”。
在Java开发中,遇到 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 错误时,可能会让许多开发者感到困惑。本文将详细介绍如何解决此问题,包括背景介绍、解决方案和代码示例。关键词:PKIX path building failed, ValidatorException, SSLHandshakeException, Java证书验证问题, SunCertPathBuilderException。
解释说明一下,这个就是登录的请求,如果登录成功就跳转到success.jsp页面上,如果登录不成功的话,转发的登录界面上 其中使用了Shrio的身份认证!
* 等待:waitting(无限期等待),timed waitting(限期等待)
最近在学习Nacos组件,使用的是最新版本:2.2.3。 在本地虚拟机CentOS 8.5.2111环境中安装Nacos,并使用standalone模式启动,同时配置使用外部MySQL数据库,MySQL版本为:8.0.34。 关于数据库的配置参数如下:
在爬取https网站的时候,今天遇到了一个之前没有见过的异常javax.net.ssl.SSLHandshakeException,具体细节请看如图
VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
JMX(Java Management Extensions,即Java管理扩展)是一个 Java 平台的管理和监控接口,是 JavaEE内嵌的一套标准的代理和服务,也就是说只要遵循这个接口标准,那么就可以管理和监控我们的应用程序
注意:本文分享给安全从业人员、网站开发人员以及运维人员在日常工作防范恶意攻击,请勿恶意使用下面介绍技术进行非法攻击操作。。
近期一个 Apache Log4j2 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。
在CDH集群启用了Kerberos后,在执行Spark作业时难免会遇到由于Kerberos认证问题导致作业运行失败的时候,那我们需要针对Spark作业进行调试,通过一些Debug日志查看认证失败的原因。本篇文章Fayson主要介绍如何为Spark的Driver和Executor的JVM启用Kerberos的Debug日志。
由于我安装的mysql 8.0,8.0和5.x其中一个改动就是加密认证方式发生改变:
VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。 VisualVM使用简单,几乎0配置,功能还是比较丰富的,几乎囊括了其它JDK自带命令的所有功能。
项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 (一)在pom.xml中添加依赖: <properties> <shiro.version>1.3.2</shiro.version> </properties> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId
zabbix镜像-zabbix下载地址-zabbix安装教程-阿里巴巴开源镜像站 (aliyun.com)
最近接连排查了几个问题,居然都是同一个参数引起的,本文就通过实际案例讲述下该参数如何引发问题的,以及问题最终又是如何解决的~
这个漏洞实质还是JMX反序列化漏洞,tomcat同样也用了JmxRemoteLifecycleListener这个监听器,但是tomcat在Oracle修复这个漏洞后自己没有及时更新,导致了反序列还依旧存在。网上搜了很多关于该漏洞的分析文章基本上都是0c0c0f牛在微信公众号里文章的转载或是变种,也基本都是在window系统上做的测试,所以也就想在linux也测试一下,也就有了这篇文章,大牛们勿喷呐= =、。
常见的https网站做的是服务端认证(server authentication),浏览器通过证书判断你所访问的https://baidu.com是否真的是百度,而不是其他人伪造的网站。同时还对流量加密,防止别人窃听你的流量。
1.首先看到的报错信息org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; 怀疑是项目配置的链接数据库的地址或者用户名, 密码错误导致,后仔细核查数据库ip ,端口号,数据库用户名,密码均未发现异常。 2.考虑到1中未排查出异常,故继续往下找,发现javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target,查询了一下错误信息的意义,发现这个应该是缺少认证证书的问题,但是连接数据库并不是通过https连接,怎么会触发证书认证的情况?可以错误日志也没有再提供其他的方向了,这个时候跟程序发现报了mysql的08001的错误码,查询得知代表的是数据库连接时区配置问题,再次检查时区配置,并按社区小伙伴提供的时区配置后问题仍然没有解决。 3.基于2中缺少证书的问题,给自己的tomcat安装了认证证书,但是问题仍然存在 4.问题再次回到1,检查数据库连接,发现原来的数据库连接有参数userSSL=true,这个参数是过去到现在一直存在的,查询参数意义发现如果这个参数开启,需要应用端和服务端同时配置证书,查看mysql服务端
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomcat和Nginx,Apache(httpd),lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Server和JSP容器,独立的Server容器是Tomcat的默认模式,.不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器. 其他JAVA容器还有resin,weblogic等
java已经有20多年的历史了,我将2021算上已经有26年了,按照成年人的年纪来算,算是已经毕业可以出来赚钱准备养家的路上了,虽然说现在java很火特别最近几年的微服务盛行,导致一种现象,高新技术层出不穷,大家都疲于学习新技术,而对于最基本的底层其实了解很陌生或者说基本不了解,当然我也了解不是很深哈~~~。学习jvm呢,主要是让基础底层更加扎实深入,了解相关的实现原理,当然好处就是面试和写出更优代码~,掌握相关原理,其实上层的东西都差不多,而不至于出一个新的技术马上扎头就去学习表面的api,没啥太大作用~~~。
我被被派去做别的事情了,所以与Hadoop相关的工作就只能搁下。写篇总结,把最近遇到的和kerberos相关的东西列一下。 JAAS是Java 认证和授权服务(Java Authentication and Authorization Service)的缩写,是PAM框架的Java实现。 javax.sercurity.auth.Subject是一个不可继承的实体类,它表示单个实体的一组相关信息,与请求的来源相关。 javax.security.auth.Principal是一个接口,表示带有不同类型凭证的标识,基本上来说,Principal可以是任意对象。 JAAS的授权机制主要就是围绕着Subject和Principal。关于JAAS比较详细的参考是这里:http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html 几个比较重要的java属性: java.security.krb5.realm java.security.krb5.kdc java.security.krb5.conf hadoop的身份认证和授权都是建立在JAAS之上。 hadoop.security.authentication属性有2种值: simple: Security is disabled。 kerberos: Security is enabled。 org.apache.hadoop.security.UserGroupInformation有一个静态方法:getCurrentUser()。它会返回一个UserGroupInformation类的实例(以下简称UGI)。如果subject为空,或者这个subject中与org.apache.hadoop.security.User对应的Principal为空,那么说明尚未登录过,调用getLoginUser()创建UserGroupInformation的实例。 getLoginUser()的流程: 1.创建LoginContext: name:如果hadoop.security.authentication等于”kerberos”,那么是“hadoop-user-kerberos”或者“hadoop-keytab-kerberos”,否则是“hadoop-simple”。它的主要作用是作为appName传递给UserGroupInformation.HadoopConfiguration.getAppConfigurationEntry(String appName)方法。 subject: callbackHandler: 空 Configuration: UserGroupInformation.HadoopConfiguration的实例。 2.login.login(); 这个会调用HadoopLoginModule的login()和commit()方法。 HadoopLoginModule的login()方法是一个空函数,只打印了一行调试日志 LOG.debug("hadoop login"); commit()方法负责把Principal添加到Subject中。 此时一个首要问题是username是什么? 在使用了kerberos的情况下,从javax.security.auth.kerberos.KerberosPrincipal的实例获取username。 在未使用kerberos的情况下,优先读取HADOOP_USER_NAME这个系统环境变量,如果不为空,那么拿它作username。否则,读取HADOOP_USER_NAME这个java环境变量。否则,从com.sun.security.auth.NTUserPrincipal或者com.sun.security.auth.UnixPrincipal的实例获取username。 如果以上尝试都失败,那么抛出异常LoginException("Can’t find user name")。 最终拿username构造org.apache.hadoop.security.User的实例添加到Subject中。 测试登录: HADOOP_JAAS_DEBUG=true HADOOP_ROOT_LOGGER=DEBUG,console bin/hadoop org.apache.hadoop.security.UserGroupInformation 其中,UGI应该是这样的形式: UGI: host/xx.xx.xx.com@xx.xx.com (auth:KERBEROS)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
在实现认证的时候,shiro有很多的加密算法,比如md5,SHA-1等。我们现在自己写一个工具类,里面是SHA-1的加密,有盐的加密。
本文就来讲一下spring security oauth2的几个endpoint的认证
OpenJDK 就是一个桶,什么都可以往里面装,各大公司又纷纷推出自己的 JDK,简直可以直呼看不懂。
前言:曾经听别人说生成证书时能够用IP地址。今天用样例证实了下用IP地址是不行的。
Java最初由Sun Microsystems的詹姆斯·高斯林于1991年开始设计,早期的设计目标是为了开发家电设备上运行的小程序。1995年Sun Microsystems发布了Java语言,该语言具有简单、安全、可移植和面向对象的特性。同时,詹姆斯·高斯林也被称作是Java之父。
为了提高网站的安全性,或者软件的安全性,现在再输入用户名和密码进行网站或者软件登陆的时候,如果输错一次就会出现输入验证码这一项,主要是为了保护账号不被暴力破解。这里我简单实现一下验证码。 使用Servlet生成验证码部分是摘自javaeye,有现成的代码直接使用就好了。不过前台这块纠结了半天,本来是打算用js对输入的验证码进行判断结果发现实现不了。最后只能写jsp脚本实现了。 首先是Servlet代码:SimpleCaptchaServlet.java:
Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
分别复制tomcat目录下的 conf logs temp webapps work 这5个目录到 test1 和 test2下。
背景知识:身份认证系统包括:目录服务,验证和授权服务,证书服务,单点登陆服务,系统管理等模块。 JOSSO 是一个纯Java基于J2EE的单点登陆验证框架,主要用来提供集中式的平台无关的用户验证。 JOSSO 主要特色: 1 100% Java,使用了 JAAS,WEB Services/SOAP,EJB, Struts, Servlet/JSP 标准技术; 2 基于JAAS的横跨多个应用程序和主机的单点登陆; 3 可插拔的设计框架允许实现多种验证规则和存储方案 ; 4 可以使用servlet和ejb Security API 提供针对web应用,ejb 的身份认证服务; 5 支持X.509 客户端证书的强验证模式; 6 使用反向代理模块可以创建多层的单点登陆认证,并且使用多种策略可在每层配置不同的验证模式; 7 支持数据库,LDAP ,XML等多种方式的存储用户信息和证书服务; 8 客户端提供php,asp 的API; 9 目前 JBoss 3.2.6 和 Jakarta Tomcat 5.0.27 以上版本支持。 10 基于BSD License。 JOSSO 主页 点评: 1、目前还没有提供.NET的客户端API,可能因为.net框架本身就有了很好的验证机制吧,但是单点登陆还是很有必要的特别是对于大型网站来说,更需要统一的用户登录管理。 2、不知道是否以后的版本会支持 活动目录 AD。 相关名词: SAML:Security Assertion Markup Language
工欲善其事必先利其器,为你呈上一箩筐性能优化工具,必有一款满足你,废话不多说,直奔主题。
转载请注明原创地址:http://www.cnblogs.com/dongxiao-yang/p/7131626.html
我理解的监控分两种,一种是运维的监控-监控整个集群的各项资源的使用情况以及各个服务的存活情况,另一种是开发的监控-监控代码问题导致的线程死锁,OOM等,以及业务消息的历史可回溯。 我是一名开放,这里主要讲讲我的心得,开发中的监控。如何减少开发人员不必要的加班。
简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 1. BASE64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码可用于在HTTP
shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。
JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。
领取专属 10元无门槛券
手把手带您无忧上云