我是python的新手并使用Python Flask并生成REST API服务.
我想检查发送给客户端的授权标头.
但我无法找到获取HTTP标头的方法.
任何有关获取HTTP标头授权的帮助都表示赞赏.
我正在编写一个代码,其任务是检索请求的URL或完整路径.我写了这段代码:
HttpServletRequest request;//obtained from other functions
String uri = request.getRequestURI();
if (request.getQueryString() != null)
uri += "?" + request.getQueryString();
Run Code Online (Sandbox Code Playgroud)
所以,当我浏览http://google.com?q=abc它是可以的(正确的).但是当我浏览时有问题https://google.com.的价值uri是http://google.com:443google.com:443,这样的程序时,不仅不HTTPS被使用.
并且输出相同request.getRequestURL().toString().
解决办法是什么?
如何将空值传递给HashMap?
以下代码段适用于填写的选项:
HashMap<String, String> options = new HashMap<String, String>();
options.put("name", "value");
Person person = sample.searchPerson(options);
System.out.println(Person.getResult().get(o).get(Id));
Run Code Online (Sandbox Code Playgroud)
那么问题是必须输入选项和/或传递空值的方法?
我尝试了以下代码但没有成功:
options.put(null, null);
Person person = sample.searchPerson(null);
options.put(" ", " ");
Person person = sample.searchPerson(null);
options.put("name", " ");
Person person = sample.searchPerson(null);
options.put();
Person person = sample.searchPerson();
Run Code Online (Sandbox Code Playgroud) 如何使用PDFBox找到(以mm为单位)pdf页面的宽度和高度?目前,我正在使用这个:
System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());
Run Code Online (Sandbox Code Playgroud)
但结果是(不是mm):
842.0
595.22
Run Code Online (Sandbox Code Playgroud) 
我正在尝试使用Bezier绘制两个数字签名,如上图所示.当我触摸并尝试绘制线条时,结果是点线但没有连续线.使用简单的签名完成简单的签名,
但我希望使用带触摸压力的Bezier创建更平滑的曲线.
试过这个链接
SignatureViewDemo.java
public class SignatureViewDemo extends View {
private int color = Color.BLACK;
private Bitmap m_Bitmap;
private final Paint m_BorderPaint;
private Canvas m_Canvas;
private Point m_CropBotRight;
private Point m_CropTopLeft;
private float m_CurrentX;
private float m_CurrentY;
private final float m_DesiredDash;
private float m_LastWidth = 6.5F;
private Paint m_PenPaint;
private int m_PointIndex = 0;
private ArrayList<Point> m_Points = new ArrayList<Point>();
private final float m_StrokeWidth;
boolean m_Empty;
public SignatureViewDemo(Context paramContext) {
this(paramContext, null);
}
public SignatureViewDemo(Context paramContext,
AttributeSet paramAttributeSet) { …Run Code Online (Sandbox Code Playgroud) 解析签名时,我收到下面给出的错误.有谁知道错误显示的原因?
注意:
使用相同的证书,我签署了自己的XML并验证哪个工作正常.这意味着证书没有问题.
客户提供的签名文档无法验证.
错误:
Exception in thread "main" javax.xml.crypto.MarshalException: Cannot create X509Certificate
at org.jcp.xml.dsig.internal.dom.DOMX509Data.unmarshalX509Certificate(DOMX509Data.java:225)
at org.jcp.xml.dsig.internal.dom.DOMX509Data.<init>(DOMX509Data.java:116)
at org.jcp.xml.dsig.internal.dom.DOMKeyInfo.<init>(DOMKeyInfo.java:116)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.<init>(DOMXMLSignature.java:150)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshal(DOMXMLSignatureFactory.java:173)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshalXMLSignature(DOMXMLSignatureFactory.java:137)
at com.signing.ValidateSignedXML.main(ValidateSignedXML.java:126)
Caused by: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
at org.jcp.xml.dsig.internal.dom.DOMX509Data.unmarshalX509Certificate(DOMX509Data.java:223)
... 6 more
Caused by: java.io.IOException: Empty input
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:101)
Run Code Online (Sandbox Code Playgroud)
在此处添加代码以供参考
package com.signing;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.Iterator;
import javax.xml.crypto.dsig.Reference;
import javax.xml.crypto.dsig.XMLSignature;
import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList; …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在Java中以编程方式创建ssh兼容的id_rsa和id_rsa.pub文件的方法.
我创建了KeyPair:
KeyPairGenerator generator;
generator = KeyPairGenerator.getInstance("RSA");
// or: generator = KeyPairGenerator.getInstance("DSA");
generator.initialize(2048);
keyPair = generator.genKeyPair();
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何在KeyPair中创建PrivateKey和PublicKey的String表示.
我是c的新手.有没有简单的方法使用一些通用命令行\ linkage参数将所有控制台的输出(printfs等)重定向到文件(无需修改任何原始代码)?
如果是这样的程序是什么?
我想使用OpenSSL生成私有/公共/(证书签名请求)并稍后签署一些数据.但我想使用OpenSSL GOST引擎.
我下载了OpenSSL 1.0.0并修改了openssl.cfg文件:
openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = ./gost.dll
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
Run Code Online (Sandbox Code Playgroud)
我可以生成私钥和CSR(单行命令字符串):
openssl req -newkey gost2001 -pkeyopt paramset:A -passout pass:aofvlgzm \
-subj "/C=RU/ST=Moscow/L=Moscow/O=foo_bar/OU=foo_bar/CN=developer/ \
emailAddress=vany.egorov@gmail.com" \
-new > certificate_signing_request.csr
Run Code Online (Sandbox Code Playgroud)
我得到2个文件:
我知道我可以做(打印私钥和公钥的(未加密的)文本表示):
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -text
Run Code Online (Sandbox Code Playgroud)
我使用GOST代替RSA,这就是为什么我不能这样做:
openssl rsa -in privkey.pem -pubout -out pubkey.pem
Enter pass phrase for privkey.pem:
6132:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting …Run Code Online (Sandbox Code Playgroud) 在shell脚本中我想验证公共RSA文件.我想要做的就是找到一种方法来检查这个文件是一个真正的公钥文件,没有别的.
我可以在这里问专家有什么方法可以验证这个输入文件,以检查这是一个真正的公钥文件,而不是常规文件.
我将来会使用这个公钥文件来验证传入的加密gzip文件,但现在已超出范围.
我想要的只是验证输入文件以检查其正版RSA公钥文件而不是普通文件.请注意我没有任何其他文件(例如:私钥).
例如:如果文件是‘public.pem’我只是想在里面检查它是一个真正的RSA公钥文件,而不仅仅是一个文本或文件的文件没有被破坏.我已经检查过该文件不是零大小和md5.
其他可能的检查,我发现检查文件得到了文本‘BEGIN PUBLIC KEY’,‘END PUBLIC KEY’
也发现这个命令在谷歌,有没有更好的方法来做到这一点使用openssl
‘openssl rsa -noout -text -inform PEM -in pubkey.pem -pubin’
Run Code Online (Sandbox Code Playgroud)
谢谢