private String buildToken( String currentTeamMemberName,String userId) { Map<String, String> kv = new LinkedHashMap<>(); kv.put("userId", userId); kv.put("currentTeamMemberName",currentTeamMemberName); kv.put("salt", "salt"); String signature = Sha1Crypto.encode(JsonHelper.getInstance().write(kv)); kv.remove("salt"); kv.put("signature", signature); kv.put("ts", System.currentTimeMillis()+""); String offset = Configuration.getInstance().getProperty("indicatorPlatformOffset"); if(offset == null || offset.trim().length() == 0){ offset = 1000 * 60 * 5 + ""; } kv.put("offset", offset); String token = JsonHelper.getInstance().write(kv);//Map转JSON String base64Token = Base64Codec.encode(token);//base64编码 return base64Token; }
时间: 2024-04-26 16:21:28 浏览: 12
这个方法是用于生成token的,其中包含了userId、currentTeamMemberName等信息,并且使用了sha1加密算法进行签名,并将生成的信息转化成JSON字符串,最后进行base64编码。这个方法的返回值是一个base64编码后的字符串,可以用于验证用户身份。如果需要将生成的token放入cookie中,可以参考我之前的回答。
相关问题
Map<String,Map<String, List<String>>>排序
对于Map<String,Map<String, List<String>>>的排序,可以使用Java 8中的Stream API来实现。具体的代码如下所示:
```java
Map<String,Map<String, List<String>>> map = new HashMap<>();
// 假设已经将map中的值填充完毕
List<Entry<String, Map<String, List<String>>>> entryList = new ArrayList<>(map.entrySet());
// 按照外层Map的key进行升序排序
Collections.sort(entryList, (entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey()));
// 遍历entryList,对每个内层Map中的List进行升序排序
entryList.forEach(entry -> {
List<Entry<String, List<String>>> innerEntryList = new ArrayList<>(entry.getValue().entrySet());
Collections.sort(innerEntryList, (innerEntry1, innerEntry2) -> innerEntry1.getKey().compareTo(innerEntry2.getKey()));
entry.setValue(new LinkedHashMap<>());
innerEntryList.forEach(innerEntry -> {
Collections.sort(innerEntry.getValue());
entry.getValue().put(innerEntry.getKey(), innerEntry.getValue());
});
});
// 将排序后的map输出
entryList.forEach(entry -> System.out.println(entry.getKey() + " : " + entry.getValue()));
```
该代码首先将外层Map转换成Entry对象的List,然后按照外层Map的key进行升序排序。接着,遍历每个Entry对象,将内层Map转换成Entry对象的List,并按照内层Map的key进行升序排序。最后,将内层List进行升序排序,并将结果重新放入内层Map中。最后,将排序后的map输出。
Map<String, FormReportVO.Analysis> formMap = new LinkedHashMap<>();
这行代码创建了一个 LinkedHashMap 类型的 `formMap` 对象,用于存储表单项的标题(label)与分析(Analysis)对象的映射关系。
具体来说,`Map<String, FormReportVO.Analysis>` 指定了 `formMap` 对象的键类型为 `String`,值类型为 `FormReportVO.Analysis`。`LinkedHashMap` 是一种基于哈希表和双向链表实现的有序 Map,可以保证插入顺序和迭代顺序一致。
这里的 `FormReportVO.Analysis` 是一个自定义的数据类型,用于存储表单项的分析结果。这里将 `formMap` 对象初始化为空 LinkedHashMap,可在后续代码中通过 put 方法向其中添加数据。