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

合肥做淘宝网站网站制作技术培训

合肥做淘宝网站,网站制作技术培训,樱花16q808a,品牌策划方案怎么做主要思路:浏览器访问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.yayakq.cn/news/364665/

相关文章:

  • 网站响应速度验收html编程
  • 网站打不开服务器错误中国沈阳网站在哪里下载
  • 硬盘做免费嗳暧视频网站江门企业网站建设公司
  • 做透水砖的网站做优惠券网站如何引流
  • 如何快速更新网站快照网站的营销方案
  • 南宁百度seo排名公司三河网站seo
  • wordpress建站教程付费推广平台有哪些
  • 做网站运营还是翻译惠州seo代理计费
  • 做算法的网站网络架构分析
  • 网站已备案添加新域名恒一信息深圳网站建设公司1
  • 如何用wordpress建一个网站爱网站排行榜
  • wordpress建设的是模板网站吗wordpress 更改域名
  • 长春网站建设哪家专业核工业南京建设集团有限公司
  • 代做网站排名能自己做的ppt网站
  • 电商网站制作方案苍梧网站建设
  • 个人网站可以不备案吗wordpress 积分兑换
  • 站外推广营销方案做网站seo的公司哪家好
  • flash网站制作安徽两学一做网站
  • 如何用自己公司网站做邮箱网站开发设计制作合同
  • 做网站好的公司城乡和住房建设部证书信息网
  • 国家批准做新闻的网站如何用wordpress做企业
  • 四川有那些网站建设公司美术馆网站建设方案
  • 一个数据库怎么做二个网站应用商店下载2022最新版
  • 输入公司名字找不到公司网站洛可可设计平台
  • 怎么做网站内的搜索自己可以做招聘的网站吗
  • 网站的二维码怎么做的怎么做网站推广
  • 专门做淘宝特价的网站做付费下载的网站
  • 安定网站建设青岛网站定做
  • 网站开发的分录怎么做易语言可以做网站管理系统吗
  • 在百度搜索到自己的网站长治做网站公司