当我使用以前使用的代码签名证书签署我的JAR时,为什么当我使用Java安全应用程序阻止对话框来规定我的应用程序是自签名的时候,我绞尽脑汁想知道为什么:
但是,当我从我没有用来签署应用程序的机器运行jarsigner verify命令时(用Acme替换实际公司名称以匿名):
jarsigner -verify -certs -verbose RegistrySafeLauncher.jar
s 821 Wed Oct 21 09:25:42 BST 2015 META-INF/MANIFEST.MF
X.509, CN="Acme Software, Inc.", OU=Acme Software Corp, OU=Digital ID Class 3 - Java Object Signing, O="Acme Software, Inc.", L=Sunnyvale, ST=California, C=US
[certificate is valid from 11/5/13 12:00 AM to 11/4/16 11:59 PM]
X.509, CN=VeriSign Class 3 Code Signing 2010 CA, OU=Terms of use at https://www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
[certificate is valid from 2/8/10 12:00 AM to 2/7/20 11:59 PM] …Run Code Online (Sandbox Code Playgroud) 我需要能够执行以下操作(使用普通的cURL和JSON服务器端 - 没有框架或Java):
使用第三方提供的Keycloak访问令牌的字符串表示来验证令牌是否有效.
如果令牌有效,请获取该用户的Keycloak ID.
如何使用普通的旧HTTP帖子执行此操作?我发现了很多Java示例,但我需要知道下面的原始HTTP POST和响应.
验证令牌是否是这样的?
/auth/realms/<realm>/protocols/openid-connect/validate?access_token=accesstokenhere
Run Code Online (Sandbox Code Playgroud)
这在数据方面有什么回报(对不起,我目前没有要测试的测试服务器)?
谢谢.
我正在使用这个非常棒的插件http://grails.org/plugin/cxf-client来使用具有安全性的契约优先Web服务.
所以我的配置中已经有类似的东西:
cxf {
client {
cybersourceClient {
clientInterface = com.webhost.soapProcessor
serviceEndpointAddress = "https://webhost/soapProcessor"
wsdl = "https://webhost/consumeMe.wsdl"
secured = true
username = "myUname"
password = "myPwd"
}
}
Run Code Online (Sandbox Code Playgroud)
这非常有效,但我现在要做的是为我的用户提供输入用户名和密码的权限,以便他们输入用户名和密码来使用该服务.有谁知道如何做到这一点?
我怀疑它在演示项目中使用Custom In Interceptor:
package com.cxf.demo.security
import com.grails.cxf.client.CxfClientInterceptor
import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
import org.apache.ws.security.WSPasswordCallback
import org.apache.ws.security.handler.WSHandlerConstants
import javax.security.auth.callback.Callback
import javax.security.auth.callback.CallbackHandler
import javax.security.auth.callback.UnsupportedCallbackException
class CustomSecurityInterceptor implements CxfClientInterceptor {
String pass
String user
WSS4JOutInterceptor create() {
Map<String, Object> outProps = [:]
outProps.put(WSHandlerConstants.ACTION, org.apache.ws.security.handler.WSHandlerConstants.USERNAME_TOKEN)
outProps.put(WSHandlerConstants.USER, user)
outProps.put(WSHandlerConstants.PASSWORD_TYPE, org.apache.ws.security.WSConstants.PW_TEXT)
outProps.put(WSHandlerConstants.PW_CALLBACK_REF, new CallbackHandler() {
void handle(Callback[] callbacks) …Run Code Online (Sandbox Code Playgroud)