private boolean reGetToken(HttpServletRequest request) { try { RuntimeConfigBean runtimeConfigBean = queryBeanFromRuntimeConfig("can_regetToekn_flag", 1, TimeUnit.MINUTES); if (runtimeConfigBean != null && !StringUtils.equals(runtimeConfigBean.getValue(), "1")) { // 不获取token return false; } } catch (Exception e) { logDebugExtension("{}", "regetToekn_flag_err"); } redisTemplate.delete(token_cache_key); authorize(request); return true; }
时间: 2024-02-14 19:31:08 浏览: 22
根据你提供的代码片段,这是一个私有方法 `reGetToken()`,它接收一个 `HttpServletRequest` 对象作为参数,并返回一个布尔值。
该方法的主要功能如下:
1. 首先,它尝试从运行时配置中查询一个名为 "can_regetToekn_flag" 的配置项,并设置查询的超时时间为1分钟。`queryBeanFromRuntimeConfig()` 方法可能是用于从运行时配置中获取配置项的方法。
2. 如果查询到的 `runtimeConfigBean` 对象不为 null,并且它的值不等于 "1",则返回 false,表示不需要重新获取 token。
3. 如果在查询过程中出现异常,会记录一个调试日志,日志内容为 "regetToekn_flag_err"。
4. 如果上述条件都不满足,则删除缓存中的 token(可能使用了 `redisTemplate` 对象进行操作),然后调用 `authorize()` 方法来执行授权操作。
5. 最后,返回 true,表示成功重新获取 token。
需要注意的是,具体的实现细节需要查看代码中的其他部分或相关的类来确定 `queryBeanFromRuntimeConfig()`、`StringUtils.equals()`、`logDebugExtension()` 和 `authorize()` 方法的具体实现。
相关问题
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){ boolean flag = true; String requestURL = request.getRequestURI(); System.out.println(requestURL); UserInfo userInfo = (UserInfo)request.getSession() .getAttribute("user_info");
这段代码是一个拦截器的前置处理方法,用于在请求被处理之前做一些预处理工作。具体来说,它会获取当前请求的 URL,并打印出来,同时从当前会话中获取名为 "user_info" 的属性值,转换成一个 UserInfo 对象并保存在变量 userInfo 中。
如果当前会话中没有名为 "user_info" 的属性值,那么 userInfo 会被设置为 null。如果 flag 的值被设置为 false,表示请求不应该被处理(比如说,用户没有登录),否则就会继续执行后续的请求处理逻辑。
SharedPreferences sp = Xiaomu_Dactor.this.getSharedPreferences("User", MODE_PRIVATE);
这是在 Android 中使用 SharedPreferences 存储用户数据的代码片段。其中,“User”是自定义的文件名,用于存储用户数据,MODE_PRIVATE 表示该文件只能被本应用程序访问。可以使用 putString、putInt、putBoolean 等方法将数据存储到 SharedPreferences 中,使用 getString、getInt、getBoolean 等方法获取存储的数据。例如:
存储数据:
```
SharedPreferences sp = Xiaomu_Dactor.this.getSharedPreferences("User", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", "张三");
editor.putInt("age", 20);
editor.putBoolean("married", false);
editor.apply();
```
获取数据:
```
SharedPreferences sp = Xiaomu_Dactor.this.getSharedPreferences("User", MODE_PRIVATE);
String name = sp.getString("name", "");
int age = sp.getInt("age", 0);
boolean married = sp.getBoolean("married", false);
```