2017-03-20 19:26

架构都类似的, 我玩过 spring boot 以及jfinal 各有千秋。 现在跟着波总 玩
jfinal

2017-03-20 09:28

溜溜 对了 波总 俱乐部 有微信群吗 ?

2017-03-17 11:23

@JFinal 已经在 @EATI001 回复他了 只要他修改一些他的分享, 就可以了。

2017-03-17 09:49

昨天后来有事,忘了回复 已经解决, 改一下第一幅图 可供大家学习
for (Routes routes: Routes.getRoutesList()) {

这里面就是
//逐个访问所有注册的Controller,解析Controller及action上的所有Shiro注解。
//并依据这些注解,actionKey提前构建好权限检查处理器。
} 昨天谢谢大家一起分享学习

2017-03-17 09:47

@EATI001
昨天忘了 回复 已经 解决 加这一行就可以
for (Routes routes: Routes.getRoutesList()) { }@JFinal

2017-03-17 09:31

form 加入 enctype="multipart/form-data"

2017-03-16 21:22

/**
* Add Routes
*/
public Routes add(Routes routes) {
routes.config();
routesList.add(routes);
return this;
}

/**
* Add route
* @param controllerKey A key can find controller
* @param controllerClass Controller Class
* @param viewPath View path for this Controller
*/
public Routes add(String controllerKey, Class controllerClass, String viewPath) {
routeItemList.add(new Route(controllerKey, controllerClass, viewPath));
return this;
}@linkzz @zzhkiller @JFinal @EATI001 应该是这段话

2017-03-16 20:44

@EATI001 @JFinal 我看了源码 发现 shiro 应该不支持的,
/**
* Add Routes
*/
public Routes add(Routes routes) {
routes.config();
routesList.add(routes);
return this;
}

/**
* 构造函数
* @param routes 路由设定
*/
public ShiroPlugin(Routes routes){
this.routes = routes;
}

这个改成
/**
* 构造函数
* @param routes 路由设定
*/
public ShiroPlugin(LIST routes){
this.routes = routes;
}


ShiroPlugin 插件 改成 list 遍历 每一个 routes 应该就可以了

2017-03-16 20:40

@EATI001 @EATI001
for (Routes.Route route : routes.getRouteItemList()) {

Class controllerClass = route.getControllerClass();

String controllerKey = route.getControllerKey();

// 获取Controller的所有Shiro注解。
List controllerAnnotations = getAuthzAnnotations(controllerClass);
// 逐个遍历方法。
Method[] methods = controllerClass.getMethods();
for (Method method : methods) {
//排除掉Controller基类的所有方法,并且只关注没有参数的Action方法。
if (!excludedMethodName.contains(method.getName())
&& method.getParameterTypes().length == 0) {
//若该方法上存在ClearShiro注解,则对该action不进行访问控制检查。
if(isClearShiroAnnotationPresent(method)){
continue;
}
//获取方法的所有Shiro注解。
List methodAnnotations = getAuthzAnnotations(method);
//依据Controller的注解和方法的注解来生成访问控制处理器。
AuthzHandler authzHandler = createAuthzHandler(
controllerAnnotations, methodAnnotations);
//生成访问控制处理器成功。
if (authzHandler != null) {
//构建ActionKey,参考ActionMapping中实现
String actionKey = createActionKey(controllerClass, method, controllerKey);
//添加映射
authzMaps.put(actionKey, authzHandler);
}
}
}
} 其中 获取不到 routes.getRouteItemList() new FrontRoutes() 的action

2017-03-16 15:38

@Override
public void configRoute(Routes routes) {
this.routes = routes;
routes.add("/", IndexController.class);
routes.add(new FrontRoutes());
routes.add(new AdminRoutes());

} 如果用这种方法 this.route = me; 就获取不到 new FrontRoutes()中的 action

2017-03-16 15:24

@JFinal 就是上面这个帖子有缺陷
导致 shiro 中RequiresRoles 等方法 无效

2017-03-16 15:09

@JFinal 编辑器用的很不爽