授权信息urlsp2p是什么意思思

拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3d2ffb-ua98).
重新安装浏览器,或使用别的浏览器基于url权限管理流程
完成权限管理的数据模型创建。
1. &&& 系统登陆
&系统 登陆相当 于用户身份认证,用户成功,要在session中记录用户的身份信息.
&操作流程:
&&&&&&&& 用户进行登陆页面
&&&&&&&& 输入用户名和密码进行登陆
&&&&&&&& 进行用户名和密码校验
&&&&&&&& 如果校验通过,在session记录用户身份信息
1.1 用户的身份信息
1.2 mapper
mapper接口: 根据用户账号查询用户(sys_user)信息
1.3 service
功能:根据用户的身份和密码 进行认证,如果认证通过,返回用户身份信息
认证过程:
&&&&&&&& 根据用户身份(账号)查询数据库,如果查询不到用户不存在
&&&&&&&& 对输入的密码 和数据库密码 进行比对,如果一致,认证通过
1.4 controller
1.5 用户认证拦截器
//用于用户认证校验、用户权限校验
&& @Override
&& public boolean preHandle(HttpServletRequest request,
&&&&&&&& HttpServletResponse response, Object handler) throws Exception {
&&&&& //得到请求的url
&&&&& String url = request.getRequestURI();
&&&&& //判断是否是公开 地址
&&&&& //实际开发中需要公开 地址配置在配置文件中
&&&&& //从配置中取逆名访问url
&&&&& List&String& open_urls = ResourcesUtil.gekeyList("anonymousURL");
&&&&& //遍历公开 地址,如果是公开 地址则放行
&&&&& for(String open_url:open_urls){
&&&&&&&& if(url.indexOf(open_url)&=0){
&&&&&&&&&&& //如果是公开 地址则放行
&&&&&&&&&&& return true;
&&&&&&&& }
&&&&& //判断用户身份在session中是否存在
&&&&& HttpSession session = request.getSession();
&&&&& ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser");
&&&&& //如果用户身份在session中存在放行
&&&&& if(activeUser!=null){
&&&&&&&& return true;
&&&&& //执行到这里拦截,跳转到登陆页面,用户进行身份认证
&&&&& request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
&&&&& //如果返回false表示拦截不继续执行handler,如果返回true表示放行
&&&&& return false;
& 1.6 在springmvc.xml中配置拦截器
&<span style="color: #.1 commonURL.properties
在此配置文件配置公用访问地址,公用访问地址只要通过用户认证,不需要对公用访问地址分配权限即可访问。
2.2 获取用户权限范围的菜单
在用户认证时,认证通过,根据用户id从数据库获取用户权限范围的菜单,将菜单的集合存储在session中。
mapper接口:根据用户id查询用户权限的菜单
service接口:根据用户id查询用户权限的菜单
2.3 获取用户权限范围的url
在用户认证时,认证通过,根据用户id从数据库获取用户权限范围的url,将url的集合存储在session中。
mapper接口:根据用户id查询用户权限的url
service接口:根据用户id查询用户权限的url
2.4 用户认证通过取出菜单和url放入session
修改service认证代码:
2.5 菜单动态显示
修改first.jsp,动态从session中取出菜单显示:
2.6 授权拦截器
//在执行handler之前来执行的
&& //用于用户认证校验、用户权限校验
&& @Override
&& public boolean preHandle(HttpServletRequest request,
&&&&&&&& HttpServletResponse response, Object handler) throws Exception {
&&&&& //得到请求的url
&&&&& String url = request.getRequestURI();
&&&&& //判断是否是公开 地址
&&&&& //实际开发中需要公开 地址配置在配置文件中
&&&&& //从配置中取逆名访问url
&&&&& List&String& open_urls = ResourcesUtil.gekeyList("anonymousURL");
&&&&& //遍历公开 地址,如果是公开 地址则放行
&&&&& for(String open_url:open_urls){
&&&&&&&& if(url.indexOf(open_url)&=0){
&&&&&&&&&&& //如果是公开 地址则放行
&&&&&&&&&&& return true;
&&&&&&&& }
&&&&& //从配置文件中获取公共访问地址
&&&&& List&String& common_urls = ResourcesUtil.gekeyList("commonURL");
&&&&& //遍历公用 地址,如果是公用 地址则放行
&&&&& for(String common_url:common_urls){
&&&&&&&& if(url.indexOf(common_url)&=0){
&&&&&&&&&&& //如果是公开 地址则放行
&&&&&&&&&&& return true;
&&&&&&&& }
&&&&& //获取session
&&&&& HttpSession session = request.getSession();
&&&&& ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser");
&&&&& //从session中取权限范围的url
&&&&& List&SysPermission& permissions = activeUser.getPermissions();
&&&&& for(SysPermission sysPermission:permissions){
&&&&&&&& //权限的url
&& &&&&& String permission_url = sysPermission.getUrl();
&&&&&&&& if(url.indexOf(permission_url)&=0){
&&&&&&&&&&& //如果是权限的url 地址则放行
&&&&&&&&&&& return true;
&&&&&&&& }
&&&&& //执行到这里拦截,跳转到无权访问的提示页面
&&&&& request.getRequestDispatcher("/WEB-INF/jsp/refuse.jsp").forward(request, response);
&&&&& //如果返回false表示拦截不继续执行handler,如果返回true表示放行
&&&&& return false;
2.7 配置授权拦截器
注意:将授权拦截器配置在用户认证拦截的下边。
使用基于url拦截的权限管理方式,实现起来比较简单,不依赖框架,使用web提供filter就可以实现。
需要将所有的url全部配置起来,有些繁琐,不易维护,url(资源)和权限表示方式不规范。
阅读(...) 评论()微信公众号三方平台开发【获取授权方的授权信息以及基本信息】微信公众号三方平台开发【获取授权方的授权信息以及基本信息】袁威百家号于千万人之中遇见了你愿与你留下恒久的记忆关注袁威,见证奇迹今天开始之前,先对上期的内容做一个小的补充,第三方平台在开发(即待全网发布)模式下,用来测试的微信公众号必须为第二期里说到的“授权测试公众号列表”(即测试白名单)里填写的微信公众号,否则会出现授权失败提示。好了,继续今天的内容,授权成功后,微信上会提示授权成功:然后,微信服务器回调上一期讲到的“回调URL”,并会在该URL参数中返回授权码(即authorization_code)和过期时间,接下来,就是利用返回的“授权码”和之前component_access_token篇讲到的“component_access_token”来换取微信公众号的接口调用凭据(authorizer_access_token和用于“authorizer_access_token”快过期时用来刷新它的authorizer_refresh_token)以及授权信息。首先,利用“授权码”和“component_access_token”来获取接口调用凭据和授权信息:$component_access_token = $this -& get_component_access_token();$url =&https://api./cgi-bin/component/api_query_auth?component_access_token=&.$component_access_$param[&#039;component_appid&#039;] = &#039;第三方平台appid &#039;;$param[&#039;authorization_code&#039;] = $auth_$info= post_data ( $url, $param );然后,利用上一步获取到的“授权方appid”和“component_access_token”来获取授权方的基本信息(包含账号名和账号类型):$component_access_token = $this-&get_component_access_token ();$url =&#039;https://api./cgi-bin/component/api_get_authorizer_info?component_access_token=&#039;.$component_access_$param [&#039;component_appid&#039;] = &#039;第三方平台appid &#039;;$param [&#039;authorizer_appid&#039;] =授权方$data= post_data ( $url, $param );注:上述两步中的返回结果示例和结果参数说明可前往微信开放平台查看【资源中心】中【第三方平台】下【授权流程技术说明】里的说明。对于获取到的信息,第三方平台根据实际情况进行存储,我这里均采用的是写数据库方式存储。完整代码1)获取微信公众号接口调用凭据和授权信息public function getAuthInfo($auth_code) {$component_access_token = $this -&get_component_access_token();$info = post_data ( $url, $param );return $}2)获取授权方的基本信息public function getPublicInfo($authorizer_appid) {$component_access_token =$this-&get_component_access_token ();$url = &#039;https://api./cgi-bin/component/api_get_authorizer_info?component_access_token=&#039;.$component_access_$param [&#039;authorizer_appid&#039;] =$authorizer_$data = post_data ( $url, $param );return $3)回调URL进行数据处理public function after_auth() {$auth_code= I ( &#039;auth_code&#039; );//获取authorization_code$auth_info= $this-&getAuthInfo ( $auth_code );//获取微信公众号接口调用凭据和授权信息$public_info= $this-&getPublicInfo ( $auth_info [&#039;authorization_info&#039;][&#039;authorizer_appid&#039;] );//获取授权方的基本信息$map[&#039;public_name&#039;] = $data [&#039;public_name&#039;] = $public_info [&#039;authorizer_info&#039;] [&#039;user_name&#039;];$data[&#039;wename&#039;] = $public_info [&#039;authorizer_info&#039;] [&#039;nick_name&#039;];$data[&#039;wechat&#039;] = $public_info [&#039;authorizer_info&#039;] [&#039;alias&#039;];//转换帐号类型if($public_info [&#039;authorizer_info&#039;] [&#039;service_type_info&#039;] [&#039;id&#039;] == 2) { // 服务号$data[&#039;type&#039;] = 2;}else { // 订阅号$data[&#039;type&#039;] = 0;if($public_info [&#039;authorizer_info&#039;] [&#039;verify_type_info&#039;] [&#039;id&#039;] != - 1) { // 已认证$data[&#039;type&#039;] += 1;$data[&#039;appid&#039;] = $public_info [&#039;authorization_info&#039;] [&#039;authorizer_appid&#039;];$data[&#039;acc_time&#039;] = date(&Y-m-d H:i:s&);$data[&#039;authorizer_refresh_token&#039;] = $auth_info [&#039;authorization_info&#039;][&#039;authorizer_refresh_token&#039;];$data[&#039;access_token&#039;] = $auth_info [&#039;authorization_info&#039;][&#039;authorizer_access_token&#039;];$data[&#039;head_img&#039;] = $public_info [&#039;authorizer_info&#039;] [&#039;head_img&#039;];$data[&#039;principal_name&#039;]=$public_info[&#039;authorizer_info&#039;][&#039;principal_name&#039;];$data[&#039;qrcode_url&#039;] = $public_info [&#039;authorizer_info&#039;] [&#039;qrcode_url&#039;];$data[&#039;uid&#039;]= session(&#039;user.id&#039;);//当前登录平台帐号id//查找当前授权的微信公众号是否已经授权过$info= M ( &#039;WechatPublic&#039; )-&where ( $map)-&find ();//存在,则更新相关信息,反之,则新增if($info) {M( &#039;WechatPublic&#039; )-&where ( $map )-&save ( $data );$url= U ( &#039;Wechat/Index/index&#039; );}else{M ( &#039;WechatPublic&#039; )-&add ( $data );//授权完成,进入平台redirect( $url );至此,微信公众号对第三方平台的授权流程已经完成,下期开始,就是代微信公众号实现业务以及开发完成后进行全网发布部分咯,敬请期待!!!如果正合你意,如果你也喜欢,点赞or分享只在一瞬间~本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。袁威百家号最近更新:简介:希望我刚好的文字,刚好适合独一无二的你~作者最新文章相关文章关于微信支付的支付授权目录是如何定义的 - ITeye问答
最近在做微信支付v3版的开发,在测试时报access_control:not_allow.查了资料发现应该是支付授权目录不对的原因。这里请教下:我的页面是在WEB-INF目录下的,那么我的支付授权目录是否应该包括WEB-INF这一级?因为WEB-INF下的页面客户端是无法直接访问的,需要由后台跳解析转到。那么这里再衍生出一个问题,由于微信支付本身是JS方式的Ajax请求,因此它判断来路页面就是支付页面URL,而这个URL就应该是微信浏览器的URL,也就是说支付授权目录是根据微信浏览器的URL来判断的。再者我的项目是spring mvc架构的,浏览器上显示的url通常都是:http://***/weixinPay/pay 这种类型的,是不直接显示映射到的jsp页面的路径的。所以,我的问题是:对于spring mvc架构的项目而言,微信支付的授权目录应该怎样定义?授权目录的页面能够放在WEB-INF目录下?谢谢。再次觉得腾讯做的东西真是太坑了。
采纳的答案
url和你物理上文件放哪一点关系都没有。
url来了之后,你自己路由到相应的处理模块,该做什么做什么,把响应返回去就好了。
你看看iteye的url,难道上面对应的也是物理文件目录吗?显然不是的。
微信授权目录为项目下最少2层目录 例如 /online/adb/ 最少要到这一级别 我们刚和微信对接了
授权目录的页面应该要在腾讯配置的,看下微信api提供的文档吧
已解决问题
未解决问题}

我要回帖

更多关于 o2o是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信