当前位置: 首页>>代码示例>>Java>>正文


Java OAuthUtils.addParameter方法代码示例

本文整理汇总了Java中org.jasig.cas.support.oauth.OAuthUtils.addParameter方法的典型用法代码示例。如果您正苦于以下问题:Java OAuthUtils.addParameter方法的具体用法?Java OAuthUtils.addParameter怎么用?Java OAuthUtils.addParameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jasig.cas.support.oauth.OAuthUtils的用法示例。


在下文中一共展示了OAuthUtils.addParameter方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: verifyOK

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Test
public void verifyOK() throws Exception {
    clearAllServices();

    final MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", CONTEXT
            + OAuthConstants.AUTHORIZE_URL);
    mockRequest.setParameter(OAuthConstants.CLIENT_ID, CLIENT_ID);
    mockRequest.setParameter(OAuthConstants.REDIRECT_URI, REDIRECT_URI);
    mockRequest.setServerName(CAS_SERVER);
    mockRequest.setServerPort(CAS_PORT);
    mockRequest.setScheme(CAS_SCHEME);
    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();

    ((OAuth20WrapperController) oauth20WrapperController)
        .getServicesManager().save(getRegisteredService(REDIRECT_URI, SERVICE_NAME));

    final Controller c = ((OAuth20WrapperController) oauth20WrapperController).getAuthorizeController();
    ((OAuth20AuthorizeController) c).setLoginUrl(CAS_URL);

    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    final HttpSession session = mockRequest.getSession();
    assertEquals(REDIRECT_URI, session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL));
    assertEquals(SERVICE_NAME, session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME));
    final View view = modelAndView.getView();
    assertTrue(view instanceof RedirectView);
    final RedirectView redirectView = (RedirectView) view;
    
    final MockHttpServletRequest reqSvc = new MockHttpServletRequest("GET", CONTEXT + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    reqSvc.setServerName(CAS_SERVER);
    reqSvc.setServerPort(CAS_PORT);
    reqSvc.setScheme(CAS_SCHEME);
    final URL url = new URL(OAuthUtils.addParameter(CAS_URL, "service", reqSvc.getRequestURL().toString()));
    final URL url2 = new URL(redirectView.getUrl());

    assertEquals(url, url2);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:37,代码来源:OAuth20AuthorizeControllerTests.java

示例2: verifyOKWithState

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Test
public void verifyOKWithState() throws Exception {
    clearAllServices();

    final MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", CONTEXT
            + OAuthConstants.AUTHORIZE_URL);
    mockRequest.setParameter(OAuthConstants.CLIENT_ID, CLIENT_ID);
    mockRequest.setParameter(OAuthConstants.REDIRECT_URI, REDIRECT_URI);
    mockRequest.setParameter(OAuthConstants.STATE, STATE);
    mockRequest.setServerName(CAS_SERVER);
    mockRequest.setServerPort(CAS_PORT);
    mockRequest.setScheme(CAS_SCHEME);
    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();

    ((OAuth20WrapperController) oauth20WrapperController)
        .getServicesManager().save(getRegisteredService(REDIRECT_URI, SERVICE_NAME));


    final Controller c = ((OAuth20WrapperController) oauth20WrapperController).getAuthorizeController();
    ((OAuth20AuthorizeController) c).setLoginUrl(CAS_URL);


    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    final HttpSession session = mockRequest.getSession();
    assertEquals(REDIRECT_URI, session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL));
    assertEquals(SERVICE_NAME, session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME));
    assertEquals(STATE, session.getAttribute(OAuthConstants.OAUTH20_STATE));
    final View view = modelAndView.getView();
    assertTrue(view instanceof RedirectView);
    final RedirectView redirectView = (RedirectView) view;
    
    final MockHttpServletRequest reqSvc = new MockHttpServletRequest("GET", CONTEXT + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    reqSvc.setServerName(CAS_SERVER);
    reqSvc.setServerPort(CAS_PORT);
    reqSvc.setScheme(CAS_SCHEME);
    final URL url = new URL(OAuthUtils.addParameter(CAS_URL, "service", reqSvc.getRequestURL().toString()));
    final URL url2 = new URL(redirectView.getUrl());

    assertEquals(url, url2);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:41,代码来源:OAuth20AuthorizeControllerTests.java

示例3: verifyOK

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Test
public void verifyOK() throws Exception {
    final MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", CONTEXT
            + OAuthConstants.AUTHORIZE_URL);
    mockRequest.setParameter(OAuthConstants.CLIENT_ID, CLIENT_ID);
    mockRequest.setParameter(OAuthConstants.REDIRECT_URI, REDIRECT_URI);
    mockRequest.setServerName(CAS_SERVER);
    mockRequest.setServerPort(CAS_PORT);
    mockRequest.setScheme(CAS_SCHEME);
    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();
    final ServicesManager servicesManager = mock(ServicesManager.class);
    final List<RegisteredService> services = new ArrayList<>();
    services.add(getRegisteredService(REDIRECT_URI, SERVICE_NAME));
    when(servicesManager.getAllServices()).thenReturn(services);
    final OAuth20WrapperController oauth20WrapperController = new OAuth20WrapperController();
    oauth20WrapperController.setLoginUrl(CAS_URL);
    oauth20WrapperController.setServicesManager(servicesManager);
    oauth20WrapperController.afterPropertiesSet();
    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    final HttpSession session = mockRequest.getSession();
    assertEquals(REDIRECT_URI, session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL));
    assertEquals(SERVICE_NAME, session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME));
    final View view = modelAndView.getView();
    assertTrue(view instanceof RedirectView);
    final RedirectView redirectView = (RedirectView) view;
    
    final MockHttpServletRequest reqSvc = new MockHttpServletRequest("GET", CONTEXT + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    reqSvc.setServerName(CAS_SERVER);
    reqSvc.setServerPort(CAS_PORT);
    reqSvc.setScheme(CAS_SCHEME);
    final URL url = new URL(OAuthUtils.addParameter(CAS_URL, "service", reqSvc.getRequestURL().toString()));
    final URL url2 = new URL(redirectView.getUrl());

    assertEquals(url, url2);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:36,代码来源:OAuth20AuthorizeControllerTests.java

示例4: verifyOKWithState

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Test
public void verifyOKWithState() throws Exception {
    final MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", CONTEXT
            + OAuthConstants.AUTHORIZE_URL);
    mockRequest.setParameter(OAuthConstants.CLIENT_ID, CLIENT_ID);
    mockRequest.setParameter(OAuthConstants.REDIRECT_URI, REDIRECT_URI);
    mockRequest.setParameter(OAuthConstants.STATE, STATE);
    mockRequest.setServerName(CAS_SERVER);
    mockRequest.setServerPort(CAS_PORT);
    mockRequest.setScheme(CAS_SCHEME);
    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();
    final ServicesManager servicesManager = mock(ServicesManager.class);
    final List<RegisteredService> services = new ArrayList<>();
    services.add(getRegisteredService(REDIRECT_URI, SERVICE_NAME));
    when(servicesManager.getAllServices()).thenReturn(services);
    final OAuth20WrapperController oauth20WrapperController = new OAuth20WrapperController();
    oauth20WrapperController.setLoginUrl(CAS_URL);
    oauth20WrapperController.setServicesManager(servicesManager);
    oauth20WrapperController.afterPropertiesSet();
    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    final HttpSession session = mockRequest.getSession();
    assertEquals(REDIRECT_URI, session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL));
    assertEquals(SERVICE_NAME, session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME));
    assertEquals(STATE, session.getAttribute(OAuthConstants.OAUTH20_STATE));
    final View view = modelAndView.getView();
    assertTrue(view instanceof RedirectView);
    final RedirectView redirectView = (RedirectView) view;
    
    final MockHttpServletRequest reqSvc = new MockHttpServletRequest("GET", CONTEXT + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    reqSvc.setServerName(CAS_SERVER);
    reqSvc.setServerPort(CAS_PORT);
    reqSvc.setScheme(CAS_SCHEME);
    final URL url = new URL(OAuthUtils.addParameter(CAS_URL, "service", reqSvc.getRequestURL().toString()));
    final URL url2 = new URL(redirectView.getUrl());

    assertEquals(url, url2);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:38,代码来源:OAuth20AuthorizeControllerTests.java

示例5: handleRequestInternal

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response)
        throws Exception {
    // get CAS ticket
    final String ticket = request.getParameter(OAuthConstants.TICKET);
    logger.debug("{} : {}", OAuthConstants.TICKET, ticket);

    // retrieve callback url from session
    final HttpSession session = request.getSession();
    String callbackUrl = (String) session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);
    session.removeAttribute(OAuthConstants.OAUTH20_CALLBACKURL);

    if (StringUtils.isBlank(callbackUrl)) {
        logger.error("{} is missing from the session and can not be retrieved.", OAuthConstants.OAUTH20_CALLBACKURL);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // and state
    final String state = (String) session.getAttribute(OAuthConstants.OAUTH20_STATE);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_STATE, state);
    session.removeAttribute(OAuthConstants.OAUTH20_STATE);

    // return callback url with code & state
    callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.CODE, ticket);
    if (state != null) {
        callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.STATE, state);
    }
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);

    final Map<String, Object> model = new HashMap<String, Object>();
    model.put("callbackUrl", callbackUrl);

    // retrieve service name from session
    final String serviceName = (String) session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME);
    logger.debug("serviceName : {}", serviceName);
    model.put("serviceName", serviceName);
    return new ModelAndView(OAuthConstants.CONFIRM_VIEW, model);
}
 
开发者ID:luotuo,项目名称:cas4.0.x-server-wechat,代码行数:39,代码来源:OAuth20CallbackAuthorizeController.java

示例6: internalHandleRequest

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView internalHandleRequest(final String method, final HttpServletRequest request,
                                             final HttpServletResponse response) throws Exception {
    // get CAS ticket
    final String ticket = request.getParameter(OAuthConstants.TICKET);
    logger.debug("{} : {}", OAuthConstants.TICKET, ticket);

    // retrieve callback url from session
    final HttpSession session = request.getSession();
    String callbackUrl = (String) session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);
    session.removeAttribute(OAuthConstants.OAUTH20_CALLBACKURL);

    if (StringUtils.isBlank(callbackUrl)) {
        logger.error("{} is missing from the session and can not be retrieved.", OAuthConstants.OAUTH20_CALLBACKURL);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // and state
    final String state = (String) session.getAttribute(OAuthConstants.OAUTH20_STATE);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_STATE, state);
    session.removeAttribute(OAuthConstants.OAUTH20_STATE);

    // return callback url with code & state
    callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.CODE, ticket);
    if (state != null) {
        callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.STATE, state);
    }
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);

    final Map<String, Object> model = new HashMap<>();
    model.put("callbackUrl", callbackUrl);

    final Boolean bypassApprovalPrompt = (Boolean) session.getAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT);
    logger.debug("bypassApprovalPrompt : {}", bypassApprovalPrompt);
    session.removeAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT);

    // Clients that auto-approve do not need authorization.
    if (bypassApprovalPrompt != null && bypassApprovalPrompt) {
        return OAuthUtils.redirectTo(callbackUrl);
    }

    // retrieve service name from session
    final String serviceName = (String) session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME);
    logger.debug("serviceName : {}", serviceName);
    model.put("serviceName", serviceName);

    return new ModelAndView(OAuthConstants.CONFIRM_VIEW, model);

}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:50,代码来源:OAuth20CallbackAuthorizeController.java

示例7: internalHandleRequest

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView internalHandleRequest(final String method, final HttpServletRequest request,
                                             final HttpServletResponse response) throws Exception {

    final String clientId = request.getParameter(OAuthConstants.CLIENT_ID);
    logger.debug("{} : {}", OAuthConstants.CLIENT_ID, clientId);

    final String redirectUri = request.getParameter(OAuthConstants.REDIRECT_URI);
    logger.debug("{} : {}", OAuthConstants.REDIRECT_URI, redirectUri);

    final String state = request.getParameter(OAuthConstants.STATE);
    logger.debug("{} : {}", OAuthConstants.STATE, state);

    // clientId is required
    if (StringUtils.isBlank(clientId)) {
        logger.error("Missing {}", OAuthConstants.CLIENT_ID);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // redirectUri is required
    if (StringUtils.isBlank(redirectUri)) {
        logger.error("Missing {}", OAuthConstants.REDIRECT_URI);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final OAuthRegisteredService service = OAuthUtils.getRegisteredOAuthService(this.servicesManager, clientId);
    if (service == null) {
        logger.error("Unknown {} : {}", OAuthConstants.CLIENT_ID, clientId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final String serviceId = service.getServiceId();
    if (!redirectUri.matches(serviceId)) {
        logger.error("Unsupported {} : {} for serviceId : {}", OAuthConstants.REDIRECT_URI, redirectUri, serviceId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    // keep info in session
    final HttpSession session = request.getSession();
    session.setAttribute(OAuthConstants.OAUTH20_CALLBACKURL, redirectUri);
    session.setAttribute(OAuthConstants.OAUTH20_SERVICE_NAME, service.getName());
    session.setAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT, service.isBypassApprovalPrompt());
    session.setAttribute(OAuthConstants.OAUTH20_STATE, state);

    final String callbackAuthorizeUrl = request.getRequestURL().toString()
            .replace('/' + OAuthConstants.AUTHORIZE_URL, '/' + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    logger.debug("{} : {}", OAuthConstants.CALLBACK_AUTHORIZE_URL, callbackAuthorizeUrl);

    final String loginUrlWithService = OAuthUtils.addParameter(loginUrl, OAuthConstants.SERVICE,
            callbackAuthorizeUrl);
    logger.debug("loginUrlWithService : {}", loginUrlWithService);
    return OAuthUtils.redirectTo(loginUrlWithService);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:53,代码来源:OAuth20AuthorizeController.java

示例8: handleRequestInternal

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response)
        throws Exception {
    // get CAS ticket
    final String ticket = request.getParameter(OAuthConstants.TICKET);
    logger.debug("{} : {}", OAuthConstants.TICKET, ticket);

    // retrieve callback url from session
    final HttpSession session = request.getSession();
    String callbackUrl = (String) session.getAttribute(OAuthConstants.OAUTH20_CALLBACKURL);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);
    session.removeAttribute(OAuthConstants.OAUTH20_CALLBACKURL);

    if (StringUtils.isBlank(callbackUrl)) {
        logger.error("{} is missing from the session and can not be retrieved.", OAuthConstants.OAUTH20_CALLBACKURL);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // and state
    final String state = (String) session.getAttribute(OAuthConstants.OAUTH20_STATE);
    logger.debug("{} : {}", OAuthConstants.OAUTH20_STATE, state);
    session.removeAttribute(OAuthConstants.OAUTH20_STATE);

    // return callback url with code & state
    callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.CODE, ticket);
    if (state != null) {
        callbackUrl = OAuthUtils.addParameter(callbackUrl, OAuthConstants.STATE, state);
    }
    logger.debug("{} : {}", OAuthConstants.OAUTH20_CALLBACKURL, callbackUrl);

    final Map<String, Object> model = new HashMap<>();
    model.put("callbackUrl", callbackUrl);

    final Boolean bypassApprovalPrompt = (Boolean) session.getAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT);
    logger.debug("bypassApprovalPrompt : {}", bypassApprovalPrompt);
    session.removeAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT);

    // Clients that auto-approve do not need authorization.
    if (bypassApprovalPrompt != null && bypassApprovalPrompt) {
        return OAuthUtils.redirectTo(callbackUrl);
    }

    // retrieve service name from session
    final String serviceName = (String) session.getAttribute(OAuthConstants.OAUTH20_SERVICE_NAME);
    logger.debug("serviceName : {}", serviceName);
    model.put("serviceName", serviceName);

    return new ModelAndView(OAuthConstants.CONFIRM_VIEW, model);

}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:50,代码来源:OAuth20CallbackAuthorizeController.java

示例9: handleRequestInternal

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response)
        throws Exception {

    final String clientId = request.getParameter(OAuthConstants.CLIENT_ID);
    LOGGER.debug("{} : {}", OAuthConstants.CLIENT_ID, clientId);

    final String redirectUri = request.getParameter(OAuthConstants.REDIRECT_URI);
    LOGGER.debug("{} : {}", OAuthConstants.REDIRECT_URI, redirectUri);

    final String state = request.getParameter(OAuthConstants.STATE);
    LOGGER.debug("{} : {}", OAuthConstants.STATE, state);

    // clientId is required
    if (StringUtils.isBlank(clientId)) {
        LOGGER.error("Missing {}", OAuthConstants.CLIENT_ID);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // redirectUri is required
    if (StringUtils.isBlank(redirectUri)) {
        LOGGER.error("Missing {}", OAuthConstants.REDIRECT_URI);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final OAuthRegisteredService service = OAuthUtils.getRegisteredOAuthService(this.servicesManager, clientId);
    if (service == null) {
        LOGGER.error("Unknown {} : {}", OAuthConstants.CLIENT_ID, clientId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final String serviceId = service.getServiceId();
    if (!redirectUri.matches(serviceId)) {
        LOGGER.error("Unsupported {} : {} for serviceId : {}", OAuthConstants.REDIRECT_URI, redirectUri, serviceId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    // keep info in session
    final HttpSession session = request.getSession();
    session.setAttribute(OAuthConstants.OAUTH20_CALLBACKURL, redirectUri);
    session.setAttribute(OAuthConstants.OAUTH20_SERVICE_NAME, service.getName());
    session.setAttribute(OAuthConstants.BYPASS_APPROVAL_PROMPT, service.isBypassApprovalPrompt());
    session.setAttribute(OAuthConstants.OAUTH20_STATE, state);

    final String callbackAuthorizeUrl = request.getRequestURL().toString()
            .replace("/" + OAuthConstants.AUTHORIZE_URL, "/" + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    LOGGER.debug("{} : {}", OAuthConstants.CALLBACK_AUTHORIZE_URL, callbackAuthorizeUrl);

    final String loginUrlWithService = OAuthUtils.addParameter(loginUrl, OAuthConstants.SERVICE,
            callbackAuthorizeUrl);
    LOGGER.debug("loginUrlWithService : {}", loginUrlWithService);
    return OAuthUtils.redirectTo(loginUrlWithService);
}
 
开发者ID:hsj-xiaokang,项目名称:springboot-shiro-cas-mybatis,代码行数:53,代码来源:OAuth20AuthorizeController.java

示例10: handleRequestInternal

import org.jasig.cas.support.oauth.OAuthUtils; //导入方法依赖的package包/类
@Override
protected ModelAndView handleRequestInternal(final HttpServletRequest request, final HttpServletResponse response)
        throws Exception {

    final String clientId = request.getParameter(OAuthConstants.CLIENT_ID);
    LOGGER.debug("{} : {}", OAuthConstants.CLIENT_ID, clientId);

    final String redirectUri = request.getParameter(OAuthConstants.REDIRECT_URI);
    LOGGER.debug("{} : {}", OAuthConstants.REDIRECT_URI, redirectUri);

    final String state = request.getParameter(OAuthConstants.STATE);
    LOGGER.debug("{} : {}", OAuthConstants.STATE, state);

    // clientId is required
    if (StringUtils.isBlank(clientId)) {
        LOGGER.error("Missing {}", OAuthConstants.CLIENT_ID);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }
    // redirectUri is required
    if (StringUtils.isBlank(redirectUri)) {
        LOGGER.error("Missing {}", OAuthConstants.REDIRECT_URI);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final OAuthRegisteredService service = OAuthUtils.getRegisteredOAuthService(this.servicesManager, clientId);
    if (service == null) {
        LOGGER.error("Unknown {} : {}", OAuthConstants.CLIENT_ID, clientId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    final String serviceId = service.getServiceId();
    if (!redirectUri.matches(serviceId)) {
        LOGGER.error("Unsupported {} : {} for serviceId : {}", OAuthConstants.REDIRECT_URI, redirectUri, serviceId);
        return new ModelAndView(OAuthConstants.ERROR_VIEW);
    }

    // keep info in session
    final HttpSession session = request.getSession();
    session.setAttribute(OAuthConstants.OAUTH20_CALLBACKURL, redirectUri);
    session.setAttribute(OAuthConstants.OAUTH20_SERVICE_NAME, service.getName());
    session.setAttribute(OAuthConstants.OAUTH20_STATE, state);

    final String callbackAuthorizeUrl = request.getRequestURL().toString()
            .replace("/" + OAuthConstants.AUTHORIZE_URL, "/" + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    LOGGER.debug("{} : {}", OAuthConstants.CALLBACK_AUTHORIZE_URL, callbackAuthorizeUrl);

    final String loginUrlWithService = OAuthUtils.addParameter(loginUrl, OAuthConstants.SERVICE,
            callbackAuthorizeUrl);
    LOGGER.debug("loginUrlWithService : {}", loginUrlWithService);
    return OAuthUtils.redirectTo(loginUrlWithService);
}
 
开发者ID:luotuo,项目名称:cas4.0.x-server-wechat,代码行数:52,代码来源:OAuth20AuthorizeController.java


注:本文中的org.jasig.cas.support.oauth.OAuthUtils.addParameter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。