我使用Jersey Framework和Java在Netbean IDE中编写了一个REST Web服务.
对于用户需要提供用户名和密码的每个请求,我知道此身份验证不是最佳做法(使用curl命令,如:)curl -u username:password -X PUT http://localhsot:8080/user
.
现在我想从Android类调用REST Web服务.
我该怎么办?
我有一个使用DefaultHttpClient
和的Android类CredentialUsernameAndPassword
,但是当我在Eclipse中运行它时,有时会遇到运行时异常或SDK异常.
如何在REST Web服务中编写用户身份验证方法?我是Web服务的初学者.
我想知道如何在spring security中重定向访问被拒绝页面?我可以在web.xml中使用某种处理程序或编辑吗?
谢谢
我想在RESTful Web服务中为每个请求进行身份验证.我在网站上阅读了关于OAuth的范围.我应该在数据库中存储什么,或者哪个令牌密钥或访问密钥需要与数据库一起检查?我有REST web服务和Android应用程序来调用web服务.因此,Web服务作为服务提供者,UserLogin是用户和Android应用程序,如Oauth站点中描述的消费者.所以,如果用户请求来自android之类的
GET /username/a.jpg HTTP/1.1 Host: localhost:8080 Authorization: OAuth realm="http://localhost/username/a.jpg", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_token="nnch734d00sl2jdk", oauth_nonce="kllo9940pd9333jh", oauth_timestamp="1191242096", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D"
但是从服务器端这是web服务如何检查数据库或将使用哪个密钥进行检查?是签名吗?
我有一个REST Web服务和android.现在我想使用android来请求Http Put来调用Web服务.在我的REST Web服务中,如果用户想要做Http Put,他可以在终端中请求如下:
curl -H"Content-Type:application/vnd.org.snia.cdmi.dataobject"-v -T /home/student1/a.jpg http:// localhost:8080/user1/folder/a.jpg
我的问题是如何在Android中使用HttpPut设置-T /home/student1/a.jpg?
如何使用itext将图像和设计页眉、页脚添加到pdf?我写了这个,但是找不到异常文件。
Image image = Image.getInstance("\resources\image.gif");
Run Code Online (Sandbox Code Playgroud)
谢谢
有谁知道如何在REST Web服务中PUT多个查询参数?我用java编写.我的curl示例是这样的:
curl -X PUT http://localhost:8080/project/resources/user/directory/sub-directory?name=shareuser&type=Read -v
Run Code Online (Sandbox Code Playgroud)
我的计划是:
@PUT
@Path("{user}/{directory:.+}")
public Response doshare(@PathParam("user")String name,
@PathParam("directory")String dir,
@QueryParam("name")String sharename,
@QueryParam("type")String type){
mongoDAOImpl impl=new mongoDAOImpl();
Mongo mongo=impl.getConnection("127.0.0.1","27017");
DB db=impl.getDataBase(mongo,"public");
DBCollection coll=impl.getColl(db,name);
DBCollection coll2=impl.getColl(db,"sharedb");
shareDTO sharedto=new shareDTO();
String authority=type.toLowerCase();
if(authority.equals("rd")){
sharedto.setAuthority("4");
}else if(authority.equals("rw")){
sharedto.setAuthority("12");
}
sharedto.setTargetuser(sharename);
sharedto.setRealURI("/home/public/"+name+"/"+dir);
sharedto.setIdentifier(name);
sharedto.setParentURI("/home/public/"+sharename);
boolean bool = false;
sharefun=new sharefunction();
if(sharefun.checksubfoldershared(coll, coll2, sharedto)){
bool=sharefun.sharefiles(coll, coll2, sharedto);
}else{
System.out.println("Error");
}
// ...
Run Code Online (Sandbox Code Playgroud)
但我只获取名称查询参数.如何获取或如何键入curl命令以获取所有查询参数?
我想在java中通过https访问Web应用程序.我是这个领域的新手.我从一些博客中读到,可以通过生成某种身份证书来制作它.是否有任何网站提供免费证书?我可以有任何博客或网站参考.
谢谢
如何在Windows中拆分java中的字符串?我用过Eg.
String directory="C:\home\public\folder";
String [] dir=direct.split("\");
Run Code Online (Sandbox Code Playgroud)
我想知道如何分割字符串,例如.在java中,如果我使用"split("\")"
,则存在语法错误.
谢谢
我在applictionContext-Security.xml中为spring安全性编写了以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<global-method-security secured-annotations="enabled">
</global-method-security>
<!-- URL pattern based security -->
<http auto-config="true">
<intercept-url pattern="/common/*" access="ROLE_ADMIN" />
<form-login login-page="/login/login.jsp"/>
<logout logout-success-url="/home/index.jsp"/>
</http>
<authentication-manager>
<authentication-provider>
<!-- <password-encoder hash="md5"/> <user-service> <user name="admin"
password="65dc70650690999922d7dcd99dbd4033" authorities="ROLE_ADMIN"/> </user-service> -->
<jdbc-user-service data-source-ref="dataSource"
authorities-by-username-query="
select admin.userName as username, auth.authority as authority from Administrators admin, Authorities auth
where admin.id=auth.AdministratorId and admin.userName= ?"
users-by-username-query="select userName as username,hashedPassword as password, enabled as enabled
from Administrators where userName= ?" />
</authentication-provider> …
Run Code Online (Sandbox Code Playgroud) 如何在android中将数据/参数值从一个活动传递到另一个活动?
我用过
loginname=txtloginname.getText().toString();
password=txtpassword.getText().toString();
Bundle bundle = new Bundle();
bundle.putString("loginname", loginname);
bundle.putString("password", password);
Intent newIntent=new Intent();
newIntent.putExtras(bundle);
setResult(RESULT_OK,newIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
但我只能获取loginname值如何同时输入登录名和密码的密钥和值?
如何在Rest Web服务中使用HttpSession保存到登录用户名?以及如何将会话传递给另一个Web服务类或其他类?
谢谢
什么是keyed-HMAC(哈希消息认证码)?以及如何使用java在Web服务中编写HMAC?