当前位置: 首页 > news >正文

竞价网站做推广太原网站排名推广

竞价网站做推广,太原网站排名推广,惠州网站制作公司,个人的小说网站如何做主要思路:浏览器访问CAS服务器登录,拿到凭证给后端,后端用此凭证到CAS服务器验证登录并拿到用户信息,之后基于该凭证维持用户的登录状态。 主要流程: 1.浏览器访问后端需认证登录地址(不带ticket&#xf…

主要思路:浏览器访问CAS服务器登录,拿到凭证给后端,后端用此凭证到CAS服务器验证登录并拿到用户信息,之后基于该凭证维持用户的登录状态。

主要流程:

1.浏览器访问后端需认证登录地址(不带ticket)

2.后端向浏览器发送重定向信息到cas服务端(参数带跳转CAS服务器的地址)

3.浏览器访问CAS服务端验证登录(参数带跳转后端的地址)

4.CAS服务器向浏览器发送重定向信息到后端的地址(带ticket)

5.后端用此ticket访问CAS服务端验证用户是否登录。

步骤2后端源码片段

org.jasig.cas.client.authentication.AuthenticationFilter#doFilter

这个AuthenticationFilter过滤器专门用户浏览器第一次访问时的跳转,专门检测ticket是否存在。不存在就重定向到cas服务器,存在就不处理

第一次访问后端认证地址没有ticket,重定地址到登录cas服务器

public final void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse,final FilterChain filterChain) throws IOException, ServletException {final HttpServletRequest request = (HttpServletRequest) servletRequest;final HttpServletResponse response = (HttpServletResponse) servletResponse;if (isRequestUrlExcluded(request)) {logger.debug("Request is ignored.");filterChain.doFilter(request, response);return;}final HttpSession session = request.getSession(false);final Assertion assertion = session != null ? (Assertion) session.getAttribute(CONST_CAS_ASSERTION) : null;if (assertion != null) {filterChain.doFilter(request, response);return;}final String serviceUrl = constructServiceUrl(request, response);final String ticket = retrieveTicketFromRequest(request);final boolean wasGatewayed = this.gateway && this.gatewayStorage.hasGatewayedAlready(request, serviceUrl);if (CommonUtils.isNotBlank(ticket) || wasGatewayed) {filterChain.doFilter(request, response);return;}final String modifiedServiceUrl;logger.debug("no ticket and no assertion found");if (this.gateway) {logger.debug("setting gateway attribute in session");modifiedServiceUrl = this.gatewayStorage.storeGatewayInformation(request, serviceUrl);} else {modifiedServiceUrl = serviceUrl;}logger.debug("Constructed service url: {}", modifiedServiceUrl);final String urlToRedirectTo = CommonUtils.constructRedirectUrl(this.casServerLoginUrl,getProtocol().getServiceParameterName(), modifiedServiceUrl, this.renew, this.gateway);logger.debug("redirecting to \"{}\"", urlToRedirectTo);this.authenticationRedirectStrategy.redirect(request, response, urlToRedirectTo);}

步骤5后端源码片段

org.jasig.cas.client.validation.AbstractTicketValidationFilter#doFilter

validation.AbstractTicket类是后端 通过前端带过来的ticket请求cas服务器,认证有效性。

底层调用HttlsURLConnectionFactory。需要实现AbstractTicket自定义认证方式

public final void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse,final FilterChain filterChain) throws IOException, ServletException {if (!preFilter(servletRequest, servletResponse, filterChain)) {return;}final HttpServletRequest request = (HttpServletRequest) servletRequest;final HttpServletResponse response = (HttpServletResponse) servletResponse;final String ticket = retrieveTicketFromRequest(request);if (CommonUtils.isNotBlank(ticket)) {logger.debug("Attempting to validate ticket: {}", ticket);try {final Assertion assertion = this.ticketValidator.validate(ticket,constructServiceUrl(request, response));logger.debug("Successfully authenticated user: {}", assertion.getPrincipal().getName());request.setAttribute(CONST_CAS_ASSERTION, assertion);if (this.useSession) {request.getSession().setAttribute(CONST_CAS_ASSERTION, assertion);}onSuccessfulValidation(request, response, assertion);if (this.redirectAfterValidation) {logger.debug("Redirecting after successful ticket validation.");response.sendRedirect(constructServiceUrl(request, response));return;}} catch (final TicketValidationException e) {logger.debug(e.getMessage(), e);onFailedValidation(request, response);if (this.exceptionOnValidationFailure) {throw new ServletException(e);}response.sendError(HttpServletResponse.SC_FORBIDDEN, e.getMessage());return;}}filterChain.doFilter(request, response);}

后端需要配置cas服务器跳转地址,后端地址

http://www.tj-hxxt.cn/news/10879.html

相关文章:

  • 网站建设的公司怎么做广告公司经营范围
  • 简洁的网站地图模板免费网站分析seo报告是坑吗
  • 淘宝不能发布网站源码做商品网络营销的优缺点
  • 微网站建设代理商免费站推广网站在线
  • 政府网站的建设目标鞍山seo优化
  • 上海市奉贤区建设局网站交换链接营销成功案例
  • 龙湖地产 网站建设站长工具seo综合查询下载
  • 开发商违约延期交房可以退房吗seo排名工具哪个好
  • 如何做网站本地服务器吗微信推广
  • 学校ui设计培训十大seo公司
  • 网站设计机构排名天津谷歌优化
  • 如何做网站分析百度竞价推广怎么收费
  • 搬家网站建设案例说明千度seo
  • wordpress旅游博客整站优化
  • 厦门市住建委网站首页哪家网络推广好
  • 做亚马逊网站费用吗南阳本地网络推广优化公司
  • 临沂网站制作培训重庆网站排名公司
  • wordpress 上传函数seo网站有优化培训吗
  • 做网站 中文字体是用什么建设网页
  • 仪征网站建设公司哪家好seo建设者
  • 广州网站建设(信科分公司)驻马店网站seo
  • 如皋网站开发免费搭建网站
  • 长治网站制作一般需要多少钱网络营销成功案例分析
  • 如何运用网站模板百度地图优化
  • 厦门专业建站系统制作公司网站怎么做推广和宣传
  • 信息化建设 公司网站广东seo点击排名软件哪里好
  • 品牌推广岗位关键词快速优化排名软件
  • 网站备案用英文广州网站推广运营
  • 政府门户网站建设提升方案传统营销和网络营销的区别
  • 大连博硕网站建设台州关键词优化平台