public class JsonUtil {/**
* 将json转化成map
* @param jsonStr
* @return
*/public static Map<String, Object>convertJsonStrToMap(String jsonStr){

Map
<String, Object> map =JSON.parseObject(
jsonStr,
new TypeReference<Map<String, Object>>(){} );returnmap;
}
}
        String jsonData = "{id:100,list:[{a:1},{a:2}]";
Map
<String, Object> map =JsonUtil.convertJsonStrToMap(jsonData);
System.out.println(map);
Integer id
= MapUtils.getInteger(map, "id");
Object list
= MapUtils.getObject(map, "list");
List
<JSONObject> ll =(List)list;for(JSONObject s : ll) {
String eleVal
= s.get("a").toString();
System.out.println(s
+"---a的值是:"+eleVal);
}

 

//直接这样无法给input hidden赋值
// driver.findElement(By.id("image_default")).sendKeys("a1112.jpg");
String val = driver.findElement(By.id("image_default")).getAttribute("value");



JavascriptExecutor jse = (JavascriptExecutor)driver;
//这种方式可用直接给隐藏域赋值
String s1="document.getElementById('image_default').value='a22.jpg'";
jse.executeScript(s1);

如果还不行,jse.executeScript("document.getElementById('fs_img1').setAttribute('type', 'text');"); 先改变元素的类型到text再sendKeys就行了。
driver.findElement(By.id("fs_img1")).sendKeys("a.jpg");

Android签名机制:生成keystore、签名、查看签名信息

 

Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。

升级App

用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。

权限检查

我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的  protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。

至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。

生成keystore

创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下:

keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore
#说明:
#    -genkey 产生密钥
#    -alias mykey 别名 mykey
#    -keyalg RSA 使用RSA算法对签名加密
#    -validity 40000 有效期限4000天
#    -keystore demo.keystore

对apk进行签名

使用产生的keystore对apk签名,使用到的是jarsigner.exe ,该工具位于jdk_xx\bin目录下,命令如下:

jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey
#    test_signed.apk是签名之后的文件
#    test.apk是需要签名的文件

另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:

-digestalg SHA1 -sigalg MD5withRSA

否则同样会出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的错误。

查看签名信息

1、查看keystore的信息

keytool -list -keystore demo.keystore -alias mykey -v

2、查看keystore的公钥证书信息

keytool -list -keystore demo.keystore -alias mykey -rfc

(注:获取Base64格式的公钥证书,RFC 1421)

3、查看apk的签名信息

jarsigner -verify -verbose -certs <your_apk_path.apk>

windows下可以使用向导一步一步创建数据库,注意编码。

windows连接到某一个数据库实例(不然会默认到一个实例下面):
set ORACLE_SID=TEST

--登录开始创建表空间及可以操作的用户
sqlplus / as sysdba;

--创建表空间
create tablespace db_test
datafile 'D:\oracle\oradata\TEST\db_test.dbf'
size 50m
autoextend on;

--查询创建好的表空间
select default_tablespace, temporary_tablespace, d.username
from dba_users d

--删除表空间
DROP TABLESPACE db_test INCLUDING CONTENTS AND DATAFILES;

--创建用户,注意设置表空间范围
CREATE USER test
IDENTIFIED BY test
DEFAULT TABLESPACE db_test;

select * from dba_users;

--授权
grant connect, resource,dba to test;


导出导入命令:
exp a/a@DB FILE=d:\a.dmp OWNER=usera GRANTS=y ROWS=y COMPRESS=y log=D:\sample.log;
imp a/a@DB file=d:\a.dmp fromuser=usera touser=userb ignore=y log=D:\sample.log;

nginx二级域名配置自动跳转到一级域名
rewrite配置内容:
if ($http_host !~ "^www.aaa.com$") {
rewrite
^(.*) http://www.aaa.com$1 permanent; }

下方,nginx代理访问项目proxy_pass,及rewrite参考
server
{
listen
80;
server_name www.aaa.com
100.100.100.100;
location
/{if ($http_host !~ "^www.aaa.com$") {
rewrite
^(.*) http://www.aaa.com$1 permanent; }
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X
-Real-IP $remote_addr;
proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http:
//192.168.1.2:8000; }
access_log logs
/aaa.com_access.log; }

 

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。