我正在尝试使用apache commons HTTP Client连接到第三方应用程序API.我正在尝试连接的API是http://wiki.kayako.com/display/DEV/REST+API.
API要求我传递API密钥和签名以及用于创建签名的salt.
根据API文档,这些是创建签名的步骤
更新
根据我得到的回复,我更改了一些代码并使用Kayako创建了一个模拟帐户来测试API
我正在使用以下类来生成签名
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.GeneralSecurityException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.util.encoders.Base64Encoder;
public class GenSign2 {
public static void main(String[] args) throws GeneralSecurityException,
IOException {
String secretKey = "M2Y2YjkxZDEtYmNlOC1mYmI0LTkxZTgtOTNiY2RiMDhmN2E2YjExNGUwYjktNGJkYy1jZTM0LWQ1MWYtZGIwYWRlZTE0NGNh";
String salt = "0123456789";
String generateHmacSHA256Signature = generateHmacSHA256Signature(salt,
secretKey);
System.out.println("Signature: " + generateHmacSHA256Signature);
String urlEncodedSign = URLEncoder.encode(generateHmacSHA256Signature,
"UTF-8");
System.out.println("Url encoded value: " + urlEncodedSign);
}
public static String generateHmacSHA256Signature(String data, String key) …Run Code Online (Sandbox Code Playgroud) 我有一个带有2个属性的托管bean:userName&password(带有各自的getter和setter方法),以及一个login()访问数据库以验证登录凭据的方法.
我的问题是,当用户点击"登录"按钮时,操作必须通过https协议.我如何用JSF 2实现这一目标?
另外,如果我想要保护一些Faces(在https协议下),我该如何实现?是否有过滤器可以让我这样做?
提前致谢.
我想将波形文件中的字节读入数组.由于读取的字节数取决于波形文件的大小,因此我创建了一个最大大小为1000000的字节数组.但这会导致数组末尾出现空值.所以,我想创建一个动态增加的数组,我发现ArrayList是解决方案.但是AudioInputStream类的read()函数只将字节读入字节数组!我如何将值传递给ArrayList?
我对这个很好奇.我知道两种在Delphi中定义事件的方法,使用回调原理和windows消息原理.
但是,消息原则不是面向对象的,并且回调仅适用于一个实例.
我想为一个事件提供一个很好的解决方案,其中两个不同的对象可以在事件触发后执行操作.
在Java中,我可以简单地添加另一个监听器.
有没有人知道Delphi中这个好听众原则的任何等效方法?
我尝试基于官方教程Sparklr2/Tonr2实现我自己的示例.一切看起来不错,但是当我从删除web.xml我的Tonr2实施,春季安全过滤器我有例外:
没有为当前请求建立重定向URI
我无法理解我应该使用哪个URL.这是我的代码,用于客户端实现:
<!--apply the oauth client context -->
<oauth:client id="oauth2ClientFilter" />
<!--define an oauth 2 resource for sparklr -->
<oauth:resource id="provider" type="authorization_code" client-id="client" client-secret="secret"
access-token-uri="http://localhost:8080/provider/oauth/token" user-authorization-uri="http://localhost:8080/provider/oauth/authorize" scope="read,write" />
<beans:bean id="clientController" class="com.aouth.client.ClientController">
<beans:property name="trustedClientRestTemplate">
<oauth:rest-template resource="provider" />
</beans:property>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)
对于提供者:
<http pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
<intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<anonymous enabled="false" />
<http-basic />
</http>
<authentication-manager id="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
<authentication-provider user-service-ref="clientDetailsUserService" />
</authentication-manager>
<bean id="clientDetailsUserService" class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService">
<constructor-arg ref="clientDetails" />
</bean>
<!-- The OAuth2 protected resources …Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,我必须与MS SQL数据库进行交互.在我的应用程序中,我正在创建用于访问数据库表的Web服务(使用javax.jws).我在Web服务中创建一个操作(方法),返回类型为java.lang.Object [] [],如下所示:
@WebMethod(operationName ="get_HistoryInfoByUser")
public java.lang.Object[][] get_HistoryInfoByUser(@WebParam(name = "email_Id")
String email_Id) throws Exception{
java.lang.Object[][] historyInfo = null;
// some code here
return historyInfo;
}
Run Code Online (Sandbox Code Playgroud)
并且为了在我的应用程序中调用Web服务操作(方法),我正在编写以下代码:
public Object[][] get_HistoryInfoByUser(String email_Id) {
java.util.List<net.java.dev.jaxb.array.AnyTypeArray> historyInfo = null;
try {
historyInfo = port.getHistoryInfoByUser(email_Id);
} catch (Exception_Exception ex) {
ex.printStackTrace();
}
return (Object[][]) historyInfo.toArray();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外
线程"Thread-8"中的异常java.lang.ClassCastException:[Ljava.lang.Object; 不能转换为[[Ljava.lang.Object;
Web服务操作返回类型是java.util.List(net.java.dev.jaxb.array.AnyTypeArray),我需要返回类型java.lang.Object [] [].
请你能给我任何建议,这将有助于我解决这个问题.
用户登录我的应用程序与oauth,登出我的应用程序但twitter无法做到,问题是用户twitter帐户是活动的.
当我注销我的应用程序同时注销twitter
twitter api不支持这个动作吗?
我前一天读过apache tomcat文档,我很困惑emptySessionPath.据我所知,如果设置为true,emptySessionPath则存储在Web应用程序的根文件夹中.请给出正确的术语定义, emptySessionPath如果设置为真和假,会发生什么?
请指导我.谢谢.
@Entity
public class Husband implements Serializable {
@Id
private int id;
private String name;
@OneToOne
private Wife wife;
}
@Entity
public class Wife implements Serializable {
@Id
private int id;
private String name;
@OneToOne(mappedBy="wife")
private Husband husband;
}
Run Code Online (Sandbox Code Playgroud)
Serializable广义的?Serializable接口?我正在尝试使用Java APNS(一个开源项目)向iPhone发送推送通知.但是我收到了一个错误.
我使用.pem文件作为证书.这应该是.p12文件吗?我不确定区别是什么,但我在网上看到这些文件格式之间存在差异.
这是代码:
ApnsService service =
APNS.newService()
.withCert("gpk.pem", "XXXX")
.withSandboxDestination()
.build();
String payload = APNS.newPayload().alertBody("Can't be simpler than this!").build();
String token = "theTokenIsRemoveHere";
service.push(token, payload);
Run Code Online (Sandbox Code Playgroud)
这是错误:
Exception in thread "main" com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: toDerInputStream rejects tag type 45
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:102)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:161)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:124)
at com.geomobsters.cli.ApnsClient.main(ApnsClient.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.io.IOException: toDerInputStream rejects tag type 45
at sun.security.util.DerValue.toDerInputStream(DerValue.java:806)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1201)
at java.security.KeyStore.load(KeyStore.java:1185)
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:87)
... 8 more
Run Code Online (Sandbox Code Playgroud)