我已经阅读过有关oAuth,Amazon REST API,HTTP Basic/Digest等的内容,但无法将其全部变成"单件".这可能是最接近的情况 - 为移动应用程序创建API - 身份验证和授权
我想建立以API为中心的网站 - 服务.所以(在一开始)我会在中心有一个API,网站(PHP + MySQL)将通过网络接口通过cURL,Android和iPhone连接.所以3个主要客户端 - 3个API密钥.任何其他开发人员也可以通过API接口开发,他们将获得自己的API密钥.API操作将根据userLevel状态被接受/拒绝,如果我是管理员,我可以删除任何内容等,所有其他操作只能操作他们的本地(帐户)数据.
首先,授权 - 我应该使用oAuth + xAuth还是我自己的一些实现(参见http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html?r=9197)?据我所知,亚马逊服务用户是== API用户(有API密钥).在我的服务上,我需要将标准用户/帐户(在网站上注册的用户)和开发者帐户(应该有他们的API密钥)分开.
所以我首先需要授权API密钥,然后验证用户自己.如果我使用亚马逊的方案检查开发人员的API密钥(授权他们的应用程序),我应该使用哪个用于身份验证?
我读过关于通过api.example.org/auth
(通过HTTPS,HTTP Basic)发布我的用户名和密码后获取令牌,然后在每个后续请求中转发它.如果我在Android和网站上同时登录,如何管理令牌?如果我只在第一次请求时使用SSL(当用户名和密码被传输时)而且只在每个其他地方使用HTTP,那么中间人攻击呢?这个示例中的问题不是密码保护REST服务吗?
我需要快速而简单的方法来加密/解密 "很多" 字符串数据.我试过jasypt,但它在我的Android手机上崩溃了.我有大约2000条记录(字符串).
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword("password");
String myEncryptedText = textEncryptor.encrypt(input);
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?我不需要极高的安全性,它需要快速!
在我的活动中,我有例如
SQLiteDatabase db = openOrCreateDatabase(Preferences.DB_NAME, Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY, value VARCHAR)");
Cursor dbResult = db.rawQuery("SELECT value FROM data", null);
// do sometning with cursors
dbResult.close();
db.close();
Run Code Online (Sandbox Code Playgroud)
什么是使用的好处SQLiteOpenHelper像
DatabaseHelper helper = new DatabaseHelper(this);
SQLiteDatabase db = helper.getWriteableDatabase();
SQLiteDatabase db_2 = helper.getReadableDatabase();
Cursor dbResult = db_2.rawQuery("SELECT value FROM data", null);
// do sometning with cursors
dbResult.close();
helper.close();
Run Code Online (Sandbox Code Playgroud)
类本身
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, Preferences.DB_NAME, null, Preferences.DB_VERSION); …
Run Code Online (Sandbox Code Playgroud) 我读了所有可能的解决方案但没有工作.我下载了蚂蚁并将其放入C:\ant
(所以我有C:\ant\bin
)
在Windows 7系统变量下,我有一个名为ANT_HOME的变量值
C:\ant
Run Code Online (Sandbox Code Playgroud)
和变量名为PATH的值
%ANT_HOME%\bin
Run Code Online (Sandbox Code Playgroud)
当我尝试cmd(命令提示符)时
ant -version
Run Code Online (Sandbox Code Playgroud)
我明白了
ANT_HOME设置不正确或无法找到ant.请设置ANT_HOME.
另外,如果我试试
echo %ANT_HOME%
Run Code Online (Sandbox Code Playgroud)
我明白了
C:\ant
Run Code Online (Sandbox Code Playgroud)
我尝试了PATH = %PATH%;%ANT_HOME%\ bin但情况相同.任何人?
编辑:
变量是(名称 - 值):
ANT_HOME - C:\ant
CLASSPATH - .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
ComSpec - %SystemRoot%\system32\cmd.exe
FP_NO_HOST_CHECK - NO
JAVA_HOME - C:\Program Files\Java\jdk1.6.0_23
NUMBER_OF_PROCESSORS - 2
OS - Windows_NT
PATH - %ANT_HOME%\bin;%JAVA_HOME%\bin
PATHEXT - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE - x86
PROCESSOR_IDENTIFIER - x86 Family 6 Model 15 Stepping 6, GenuineIntel
PROCESSOR_LEVEL …
Run Code Online (Sandbox Code Playgroud) 访问我的网站在SSL和Chrome(12.0)我得到
您与某个网站的连接使用256位加密进行加密.但是,此页面包含其他不安全的资源.其他人在传输过程中可以查看这些资源,攻击者可以修改这些资源以更改页面的行为.
连接使用TLS 1.0.
连接使用AES-256_CBC加密,SHA1用于消息验证,DHE_RSA用作密钥交换机制.
连接使用DEFLATE进行压缩.
我使用FireBug (NET选项卡)和Chrome Inspector进行了搜索,所有资源都通过https访问.问题出在哪儿?*我清除缓存已经
可能是什么问题呢?
我已经搜索过wiki,但找不到答案我应该Authorization
在JS脚本中放置我的附加标题(例如标题)?某处onSend
/ beforeSend
或?
什么是更好的设计实践?
如果我有对象A并且它包含一些相关对象,例如我有一个汽车对象,它有各种类型.
我是否应该根据请求api.example.org/cars/1
仅响应这些资源的ID(因此,如果有人需要有关它们的详细信息,则需要另外的API调用api.example.org/type/1
)
{
"id": 1,
"name": "Some Car",
"types": [
1,
2
]
}
Run Code Online (Sandbox Code Playgroud)
或提供有关这些资源的详细信息
{
"id": 1,
"name": "Some Car",
"types": [
{
"id": 1,
"name": "Some Type",
"something": "Blah"
},
{
"id": 2,
"name": "Some Type",
"something": "Blah"
}
]
}
Run Code Online (Sandbox Code Playgroud)
或者提供可选参数,例如"displayAll",然后提供带有参数名称的数组,这些参数应该在一次API调用中检索(在本例中为类型).
我有一个class="tags"
带有一个预定义超链接的div .
<div class="tags">
<a href="#">myLink</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我有功能删除该超链接,如果用户点击它.
$('.tags a').click(function() {
$(this).remove();
return false;
});
Run Code Online (Sandbox Code Playgroud)
这适用于预定义的超链接.如果我在jQuery的帮助下添加其他链接(在页面加载后)
$('.tags').append('<a href="#">newLink</a>');
Run Code Online (Sandbox Code Playgroud)
将不会在这些添加的链接上调用删除超链接(单击时)的功能.怎么解决这个?
我打开记事本(Windows)并写
Some lines with special characters
Special: Ž?š??
Run Code Online (Sandbox Code Playgroud)
并转到另存为... "someFile.txt",其中Encoding设置为UTF-8.
在Java中我有
FileInputStream fis = new FileInputStream(new File("someFile.txt"));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);
String line;
while((line = in.readLine()) != null) {
printLine(line);
}
in.close();
Run Code Online (Sandbox Code Playgroud)
但我得到问号和类似的"特殊"字符.为什么?
编辑:我有这个输入(.txt文件中的一行)
665,Ž?š??
Run Code Online (Sandbox Code Playgroud)
和这段代码
FileInputStream fis = new FileInputStream(new File(fileName));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);
String line;
while((line = in.readLine()) != null) {
Toast.makeText(mContext, line, Toast.LENGTH_LONG).show();
Pattern …
Run Code Online (Sandbox Code Playgroud)