如果我开发一个项目,既有Web端又有App端,我是应该在项目中引用browser模块还是app模块呢,或者应该怎么做呢,谢谢老师!

来源:7-4 基于数据库Rbac数据模型控制权限

qq_lcy_7

2018-05-10

写回答

3回答

JoJo

2018-05-16

分开部署,一个引browser,一个引app

1
1
jiiiiiin
这个问题我也想问,如果是这样会不会开发运维成本太大了,这两个模块不能整合么? 如:认证成功处理器,根据比如spring-mobile类似判断渠道的方式进行不同的资源数据输出: ```java public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { L.info("身份认证(登录)成功"); final SavedRequest savedRequest = requestCache.getRequest(request, response); if (savedRequest != null) { final Device currentDevice = HttpUtils.resolveDevice(savedRequest.getHeaderValues("user-agent").get(0), savedRequest.getHeaderValues("accept").get(0)); // 根据渠道返回不同的响应数据 // 还有一种做法是根据客户端程序配置来指定响应数据格式:https://coding.imooc.com/lesson/134.html#mid=6866 if (!currentDevice.isNormal()) { response.setContentType("application/json;charset=UTF-8"); // 将authentication转换成json str输出 response.getWriter().write(objectMapper.writeValueAsString(authentication)); } else { // 默认是做重定向到登录之前的【期望访问资源】接口 super.onAuthenticationSuccess(request, response, authentication); } ... ```
2018-09-22
共1条回复

jiiiiiin

2018-09-22

这个问题我也想问,如果是这样会不会开发运维成本太大了,这两个模块不能整合么? 如:认证成功处理器,根据比如spring-mobile类似判断渠道的方式进行不同的资源数据输出:

```java

@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
   L.info("身份认证(登录)成功");
   final SavedRequest savedRequest = requestCache.getRequest(request, response);
   if (savedRequest != null) {
       final Device currentDevice = HttpUtils.resolveDevice(savedRequest.getHeaderValues("user-agent").get(0), savedRequest.getHeaderValues("accept").get(0));
       // 根据渠道返回不同的响应数据
       // 还有一种做法是根据客户端程序配置来指定响应数据格式:https://coding.imooc.com/lesson/134.html#mid=6866
       if (!currentDevice.isNormal()) {
           response.setContentType("application/json;charset=UTF-8");
           // 将authentication转换成json str输出
           response.getWriter().write(objectMapper.writeValueAsString(authentication));
       } else {
           // 默认是做重定向到登录之前的【期望访问资源】接口
           super.onAuthenticationSuccess(request, response, authentication);
       }
   } else {
       // 默认是做重定向到登录之前的【期望访问资源】接口
       super.onAuthenticationSuccess(request, response, authentication);
   }
}

```

0
0

花开北海

2018-05-30

都使用 token 实现,用 redis 代替 session 即可

0
0

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全

2662 学习 · 1561 问题

查看课程