小编dsh*_*dsh的帖子

忽略Servlet中的SSL证书

我收到以下异常:

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
Run Code Online (Sandbox Code Playgroud)

我做了一些研究并改变了我的连接代码:

SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
            public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
                return true;
            }
        }).build();

CloseableHttpClient client = HttpClients.custom()
            .setRedirectStrategy(new LaxRedirectStrategy()) 
            .setSslcontext(sslContext)   
            .setConnectionManager(connMgr)
            .build();
Run Code Online (Sandbox Code Playgroud)

这解决了到目前为止的问题,我不再获得异常并且连接正常.

当我在Tomcat中运行的Servlet中使用相同的代码时,问题再次出现.

为什么?

java ssl tomcat sslhandshakeexception

15
推荐指数
1
解决办法
7648
查看次数

为什么python的timeit使用'best of of 3'来衡量经过的时间?

我没有看到为什么python的timeit模块使用the来测量时间的原因best of 3.这是我的控制台的一个例子:

~ python -m timeit 'sum(range(10000))'
10000 loops, best of 3: 119 usec per loop
Run Code Online (Sandbox Code Playgroud)

直觉上,我会将整个时间放在一起然后除以循环次数.在所有循环中获得最佳3的直觉是什么?这似乎有点不公平.

python benchmarking timeit microbenchmark

11
推荐指数
1
解决办法
2091
查看次数

JS验证突出显示输入字段红色/绿色

我正在为我的HTML表单创建一个简单的JS验证.验证检查字段是否为空,在某些情况下检查两者是否为空且输入!数字.这个检查效果很好,但我想要实现的是如果JS检测到无效输入,则以红色突出显示该字段.如果输入无效,我已经编写了一些JS来设置输入字段的样式,但它是不起作用的突出显示.

JS snap

function FormValidation(){
//First Name Validation 
    var fn=document.getElementById('firstname').value;
    if(fn == ""){
        alert('Please Enter First Name');
        document.getElementById('firstname').style.borderColor = "red";
        return false;
    }else{
        document.getElementById('firstname').style.borderColor = "green";
    }
    if (/^[0-9]+$/.test(document.getElementById("firstname").value)) {
        alert("First Name Contains Numbers!");
        document.getElementById('firstname').style.borderColor = "red";
        return false;
    }else{
        document.getElementById('firstname').style.borderColor = "green";
    }
    if(fn.length <=2){
        alert('Your Name is To Short');
        document.getElementById('firstname').style.borderColor = "red";
        return false;
    }else{
        document.getElementById('firstname').style.borderColor = "green";
    }
Run Code Online (Sandbox Code Playgroud)

HTML快照

<form action="" method="post" onsubmit="return FormValidation();" onchange="return FormValidation();">        
    <div class="input-wrapper">
        <input type="text" placeholder="First Name" id="firstname" name="name"/>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

我很确定这个亮点应该有效.我之前做过类似的验证,但不幸的是,这次我无法得到我追求的结果.

html javascript

9
推荐指数
2
解决办法
8万
查看次数

Multibranch Pipeline - 配置分支项目

当我创建一个普通的管道项目时,我可以选择定期轮询scm,如果检测到更改,则运行构建.这对我很有用.

现在我创建了一个multibranch管道并添加了2个分支.但是,在配置中我不能像在普通管道项目中那样设置相同,因为它告诉我我只能查看子分支项目的配置.

也许我也做错了,所以我试着告诉你我真正想要实现的目标.

我在Git存储库中有一个PHP项目.我想在新提交上构建两个分支(当推送到主存储库时)主存储库驻留在自托管版本的Bitbucket Server上.如果可能的话,我想避免钩子,让Jenkins轮询bitbucket服务器上的更改.那我怎么能实现呢?

jenkins jenkins-workflow

8
推荐指数
2
解决办法
5575
查看次数

带有半圆边缘的android按钮

我正在尝试在我的android项目中创建一个用于我的图像按钮的形状,它基本上有左半边和右边的半圆.

我以为我可以使用半径为的形状XML.但是这只是围绕着我需要整个左右两侧的角落,如下图所示.

我当前形状的xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" 
    android:color="@color/white">

    <corners
       android:radius="60dip"
         />

    <stroke
        android:width="0dp"
        android:color="#000000" />


     <solid
        android:color="@color/white" />

</shape>
Run Code Online (Sandbox Code Playgroud)

但我想尝试这个效果: 在此输入图像描述

android android-xml android-drawable

7
推荐指数
1
解决办法
8068
查看次数

Android凭据存储:保存私钥的位置?

我的应用程序包含我想要加密的安全内容.我想在本地存储密钥(主要是因为我的用户不使用任何身份验证机制进行登录).

这些是我从Android中找到的解决方案

  • Android Keystore System:它听起来像是一个完美的解决方案,它显着提高了本地存储密钥的安全性,但它只提供APIS 18+的加密协议,而我的应用程序需要支持API 14.
  • KeyChain API:它主要帮助在应用程序之间共享安全密钥,还需要用户参与选择证书链.
  • 从Android 安全和设计,如何保存Android公钥:

    为了保护您的公钥免受恶意用户和黑客的攻击,请不要将其作为文字字符串嵌入任何代码中.相反,在运行时从片段构造字符串或使用位操作(例如,XOR与其他字符串)来隐藏实际的键.密钥本身不是秘密信息,但您不希望黑客或恶意用户轻易用其他密钥替换公钥.

    虽然这听起来像是一个很好的提示,但它并没有真正增加安全性.

那么在不要求用户身份验证的情况下保存私钥的最佳做法是什么?

security android

7
推荐指数
1
解决办法
1472
查看次数

从Counter对象中提取字典

我想计算一个单词出现在sting列表中的次数.

['this is a red ball','this is another red ball']
Run Code Online (Sandbox Code Playgroud)

我写了以下代码

counts = Counter()
for sentence in lines:
    counts.update(word.strip('.,?!"\'').lower() for word in sentence.split())
Run Code Online (Sandbox Code Playgroud)

它给出了以下格式的结果

Counter({'': 6, 'red': 2, 'this': 2, ....})
Run Code Online (Sandbox Code Playgroud)

我怎么才能得到字典?

python counter dictionary

6
推荐指数
2
解决办法
6548
查看次数

在换行符上拆分字节变量

这是一个不寻常的请求,我希望得到一些指导!:)

我有一个 python 变量,为简单起见,我们可以称它为“输出”

当我打印输出时,我得到以下信息:

b"word1\nword2\nword3\n"
Run Code Online (Sandbox Code Playgroud)

如果我可以打印,我会喜欢的

word1
word2
word3
word4
Run Code Online (Sandbox Code Playgroud)

我试图拆分变量,并将其提供给 for 循环,但成功率为零。我很高兴将输出写入操作系统中的文件并使用 bash 来解决该问题。

谢谢!

python variables for-loop

6
推荐指数
2
解决办法
6238
查看次数

Java:删除链接列表中的所有元素

在Java中,如何在使用已有clear()方法的情况下删除链表中的所有元素?这项练习的灵感来自于电话采访中收到的问题.

说我可以用C做到这一点

void DeleteAllElement( ListElement **head ) {  
    ListElement *deleteMe = *head;  
    while( deleteMe )  {  
        ListElement *next = deleteMe->next;  
        delete deleteMe;  
        deleteMe = next;  
    }  
    *head = NULL;  
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java linked-list

5
推荐指数
2
解决办法
4万
查看次数

count*with where子句使用JPA条件查询

我想查找related_elements表的记录,其中relationId属于列表

假设Set tempSet包含[2,3,4]我必须使用jpa条件查询检查related_element表中包含的这些值

CriteriaBuilder cb1=entityManager.getCriteriaBuilder();
        CriteriaQuery<RelatedElements> cq1=cb1.createQuery(RelatedElements.class);
        Root<RelatedElements> RelatedElementsRoot=cq1.from(RelatedElements.class);
    for (Integer tSet : tempSet) {
            ParameterExpression<Integer> pRelatedElement=cb1.parameter(Integer.class);
            cq1.multiselect(cb1.count(RelatedElementsRoot.<RelatedElements>get("relatedElementsPk").<Integer>get("relationId"))).where(cb1.equal(RelatedElementsRoot.get("relationId"), pRelatedElement));
            TypedQuery<RelatedElements> qry = entityManager.createQuery(cq1);
            qry.setParameter(pRelatedElement, tSet);
            count = entityManager.createQuery(cq1).getSingleResult().getRelationId();
        }
Run Code Online (Sandbox Code Playgroud)

但它现在正在工作......任何建议

第二次尝试

CriteriaBuilder cb1=entityManager.getCriteriaBuilder();
        CriteriaQuery<Integer> cq1 = cb1.createQuery(Integer.class);
        Root<RelatedElements> RelatedElementsRoot=cq1.from(RelatedElements.class);
        for (Integer tSet : tempSet) {
            ParameterExpression<Integer> pRelatedElement=cb1.parameter(Integer.class);
            cq1.multiselect(cb1.count(cq1.from(RelatedElements.class)));
            cq1.where((cb1.equal(RelatedElementsRoot.get("relatedElementsPk").get("relationId"), pRelatedElement)));
            TypedQuery<Integer> qry = entityManager.createQuery(cq1);
            qry.setParameter(pRelatedElement, tSet);
            count =qry.getSingleResult();
        }
Run Code Online (Sandbox Code Playgroud)

它在qry.setParameter上给出了异常

无法在类[java.lang.Integer]上找到适当的构造函数[从com.mcd.webex.model.RelatedElements中选择新的java.lang.Integer(count(*))as generatedAlias0,com.mcd.webex.model.RelatedElements as generatedAlias1 where generatedAlias0.relatedElementsPk.relationId =:param0]

criteria-api jpa-2.0

5
推荐指数
2
解决办法
1万
查看次数