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


Java CookieTheftException类代码示例

本文整理汇总了Java中org.springframework.security.web.authentication.rememberme.CookieTheftException的典型用法代码示例。如果您正苦于以下问题:Java CookieTheftException类的具体用法?Java CookieTheftException怎么用?Java CookieTheftException使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


CookieTheftException类属于org.springframework.security.web.authentication.rememberme包,在下文中一共展示了CookieTheftException类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private Token getPersistentToken(String[] cookieTokens) {
    if (cookieTokens.length != 2) {
        throw new InvalidCookieException("Cookie token did not contain " + 2 +
                " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
    }

    final String presentedSeries = cookieTokens[0];
    final String presentedToken = cookieTokens[1];

    Token token = null;
    try {
        token = tokenRepo.findOne(presentedSeries);
    } catch (DataAccessException e) {
        log.error("Error to access database", e );
    }

    if (token == null) {
        // No series match, so we can't authenticate using this cookie
        throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
    }

    // We have a match for this user/series combination
    log.info("presentedToken={} / tokenValue={}", presentedToken, token.getValue());
    if (!presentedToken.equals(token.getValue())) {
        // Token doesn't match series value. Delete this session and throw an exception.
        tokenRepo.delete(token.getSeries());
        throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
    }

    if (DateUtils.addDays(token.getDate(), TOKEN_VALIDITY_DAYS).before(new Date())) {
        tokenRepo.delete(token.getSeries());
        throw new RememberMeAuthenticationException("Remember-me login has expired");
    }
    return token;
}
 
开发者ID:csokafor,项目名称:spring-security-angularjs,代码行数:39,代码来源:RememberMeServices.java

示例2: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(String[] cookieTokens) {
    if (cookieTokens.length != 2) {
        throw new InvalidCookieException("Cookie token did not contain " + 2 +
                " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
    }
    String presentedSeries = cookieTokens[0];
    String presentedToken = cookieTokens[1];
    PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

    if (token == null) {
        // No series match, so we can't authenticate using this cookie
        throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
    }

    // We have a match for this user/series combination
    log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
    if (!presentedToken.equals(token.getTokenValue())) {
        // Token doesn't match series value. Delete this session and throw an exception.
        persistentTokenRepository.delete(token);
        throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
    }

    if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
        persistentTokenRepository.delete(token);
        throw new RememberMeAuthenticationException("Remember-me login has expired");
    }
    return token;
}
 
开发者ID:VHAINNOVATIONS,项目名称:BCDS,代码行数:32,代码来源:CustomPersistentRememberMeServices.java

示例3: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private Token getPersistentToken(String[] cookieTokens) {
    if (cookieTokens.length != 2) {
        throw new InvalidCookieException("Cookie token did not contain " + 2 + " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
    }

    final String presentedSeries = cookieTokens[0];
    final String presentedToken = cookieTokens[1];

    Token token = persistentTokenService.getPersistentToken(presentedSeries);

    if (token == null) {
        // No series match, so we can't authenticate using this cookie
        throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
    }

    // We have a match for this user/series combination
    if (!presentedToken.equals(token.getTokenValue())) {

        // This could be caused by the opportunity window where the token just has been refreshed, but
        // has not been put into the token cache yet. Invalidate the token and refetch and it the new token value from the db is now returned.

        token = persistentTokenService.getPersistentToken(presentedSeries, true); // Note the 'true' here, which invalidates the cache before fetching
        if (!presentedToken.equals(token.getTokenValue())) {

            // Token doesn't match series value. Delete this session and throw an exception.
            persistentTokenService.delete(token);
            throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");

        }
    }

    if (new Date().getTime() - token.getTokenDate().getTime() > tokenMaxAgeInMilliseconds) {
        throw new RememberMeAuthenticationException("Remember-me login has expired");
    }
    return token;
}
 
开发者ID:flowable,项目名称:flowable-engine,代码行数:40,代码来源:CustomPersistentRememberMeServices.java

示例4: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(String[] cookieTokens) {
    if (cookieTokens.length != 2) {
        throw new InvalidCookieException("Cookie token did not contain " + 2 +
            " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
    }
    String presentedSeries = cookieTokens[0];
    String presentedToken = cookieTokens[1];
    PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

    if (token == null) {
        // No series match, so we can't authenticate using this cookie
        throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
    }

    // We have a match for this user/series combination
    log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
    if (!presentedToken.equals(token.getTokenValue())) {
        // Token doesn't match series value. Delete this session and throw an exception.
        persistentTokenRepository.delete(token);
        throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous " +
            "cookie theft attack.");
    }

    if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
        persistentTokenRepository.delete(token);
        throw new RememberMeAuthenticationException("Remember-me login has expired");
    }
    return token;
}
 
开发者ID:TransparencyInternationalEU,项目名称:lobbycal,代码行数:33,代码来源:CustomPersistentRememberMeServices.java

示例5: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(final String[] cookieTokens) {
	if (cookieTokens.length != 2) {
		throw new InvalidCookieException("Cookie token did not contain " + 2 + " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
	}
	String presentedSeries = cookieTokens[0];
	String presentedToken = cookieTokens[1];
	PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

	if (token == null) {
		// No series match, so we can't authenticate using this cookie
		throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
	}

	// We have a match for this user/series combination
	log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
	if (!presentedToken.equals(token.getTokenValue())) {
		// Token doesn't match series value. Delete this session and throw
		// an exception.
		persistentTokenRepository.delete(token);
		throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
	}

	if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
		persistentTokenRepository.delete(token);
		throw new RememberMeAuthenticationException("Remember-me login has expired");
	}
	return token;
}
 
开发者ID:ServiceCutter,项目名称:ServiceCutter,代码行数:32,代码来源:CustomPersistentRememberMeServices.java

示例6: processAutoLoginCookie

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
@Override
protected UserDetails processAutoLoginCookie(String[] arg0, HttpServletRequest arg1, HttpServletResponse arg2) {
	try {
		return super.processAutoLoginCookie(arg0, arg1, arg2);
	} catch (CookieTheftException cte) {
		log.warn("Instead of throwing CookieTheftException, will convert it to RememberMeAuthenticationException",
				cte);
		// NOTE: It will not prevent all user cookies delition, but still
		// will not show ugly exception to the user, instead it will ask for
		// login
		throw new RememberMeAuthenticationException("Converting CookieTheftException to something less scary");
	}
}
 
开发者ID:skarpushin,项目名称:summerb,代码行数:14,代码来源:PersistentTokenBasedRememberMeServicesEx.java

示例7: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(String[] cookieTokens) {
  if (cookieTokens.length != 2) {
    throw new InvalidCookieException(format("Cookie token did not contain %d tokens, but contained '%s'", 2, asList(cookieTokens)));
  }
  String presentedSeries = cookieTokens[0];
  String presentedToken = cookieTokens[1];
  PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

  if (token == null) {
    // No series match, so we can't authenticate using this cookie
    throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
  }

  // We have a match for this user/series combination
  log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
  if (!presentedToken.equals(token.getTokenValue())) {
    // Token doesn't match series value. Delete this session and throw an exception.
    persistentTokenRepository.delete(token);
    throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
  }

  if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
    persistentTokenRepository.delete(token);
    throw new RememberMeAuthenticationException("Remember-me login has expired");
  }
  return token;
}
 
开发者ID:priitl,项目名称:p2p-webtv,代码行数:31,代码来源:PersistentRememberMeServices.java

示例8: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(String[] cookieTokens) {
	if (cookieTokens.length != 2) {
		throw new InvalidCookieException("Cookie token did not contain " + 2 + " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
	}
	final String presentedSeries = cookieTokens[0];
	final String presentedToken = cookieTokens[1];
	final PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

	if (token == null) {
		// No series match, so we can't authenticate using this cookie
		throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
	}

	// We have a match for this user/series combination
	log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
	if (!presentedToken.equals(token.getTokenValue())) {
		// Token doesn't match series value. Delete this session and throw an exception.
		persistentTokenRepository.delete(token);
		throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
	}

	if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
		persistentTokenRepository.delete(token);
		throw new RememberMeAuthenticationException("Remember-me login has expired");
	}
	return token;
}
 
开发者ID:glebreton,项目名称:lapetiterennes,代码行数:31,代码来源:CustomPersistentRememberMeServices.java

示例9: getPersistentToken

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
/**
 * Validate the token and return it.
 */
private PersistentToken getPersistentToken(String[] cookieTokens) {
    if (cookieTokens.length != 2) {
        throw new InvalidCookieException("Cookie token did not contain " + 2 +
                " tokens, but contained '" + Arrays.asList(cookieTokens) + "'");
    }

    final String presentedSeries = cookieTokens[0];
    final String presentedToken = cookieTokens[1];

    PersistentToken token = persistentTokenRepository.findOne(presentedSeries);

    if (token == null) {
        // No series match, so we can't authenticate using this cookie
        throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
    }

    // We have a match for this user/series combination
    log.info("presentedToken={} / tokenValue={}", presentedToken, token.getTokenValue());
    if (!presentedToken.equals(token.getTokenValue())) {
        // Token doesn't match series value. Delete this session and throw an exception.
        persistentTokenRepository.delete(token);
        throw new CookieTheftException("Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack.");
    }

    if (token.getTokenDate().plusDays(TOKEN_VALIDITY_DAYS).isBefore(LocalDate.now())) {
        persistentTokenRepository.delete(token);
        throw new RememberMeAuthenticationException("Remember-me login has expired");
    }
    return token;
}
 
开发者ID:thpham,项目名称:ithings-demo,代码行数:34,代码来源:CustomPersistentRememberMeServices.java

示例10: handleCookieTheft

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
@ExceptionHandler(CookieTheftException.class)
public String handleCookieTheft(Exception e , RedirectAttributes attr) {
    e.printStackTrace();
    attr.addFlashAttribute("error","Your remember me details are invalid. Please log in again.");
    return "redirect:/error";
}
 
开发者ID:Exercon,项目名称:AntiSocial-Platform,代码行数:7,代码来源:ExceptionController.java

示例11: handleCookieTheft

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
@ExceptionHandler(CookieTheftException.class)
public String handleCookieTheft(Exception e , RedirectAttributes attr) {
    e.printStackTrace();
    attr.addFlashAttribute("error","Your remember me details are invalid. Please log in again.");
    return "redirect:/oups";
}
 
开发者ID:Exercon,项目名称:AntiSocial-Platform,代码行数:7,代码来源:ExceptionController.java

示例12: processAutoLoginCookie

import org.springframework.security.web.authentication.rememberme.CookieTheftException; //导入依赖的package包/类
protected UserDetails processAutoLoginCookie(String[] cookieTokens, HttpServletRequest request,
		HttpServletResponse response) {

	if (cookieTokens.length != 2) {
		throw new InvalidCookieException("Cookie token did not contain " + 2 + " tokens, but contained '"
				+ Arrays.asList(cookieTokens) + "'");
	}

	final String presentedSeries = cookieTokens[0];
	final String presentedToken = cookieTokens[1];

	TenantUserRememberMeToken token = (TenantUserRememberMeToken) tokenRepository
			.getTokenForSeries(presentedSeries);

	if (token == null) {
		throw new RememberMeAuthenticationException("No persistent token found for series id: " + presentedSeries);
	}

	if (!presentedToken.equals(token.getTokenValue())) {

		tokenRepository.removeUserTokens(token.getUserId());

		throw new CookieTheftException(messages.getMessage("PersistentTokenBasedRememberMeServices.cookieStolen",
				"Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack."));
	}

	if (token.getDate().getTime() + getTokenValiditySeconds() * 1000L < System.currentTimeMillis()) {
		throw new RememberMeAuthenticationException("Remember-me login has expired");
	}

	if (logger.isDebugEnabled()) {
		logger.debug("Refreshing persistent login token for user '" + token.getUsername() + "', series '"
				+ token.getSeries() + "'");
	}

	PersistentRememberMeToken newToken = new PersistentRememberMeToken(token.getUsername(), token.getSeries(),
			generateTokenData(), new Date());

	try {
		tokenRepository.updateToken(newToken.getSeries(), newToken.getTokenValue(), newToken.getDate());
		addCookie(newToken, request, response);
	} catch (Exception e) {
		logger.error("Failed to update token: ", e);
		throw new RememberMeAuthenticationException("Autologin failed due to data access problem");
	}

	return getUserDetailsService().loadUserByUsername(token.getTenantUserName());
}
 
开发者ID:KayuraTeam,项目名称:kayura-uasp,代码行数:49,代码来源:PersistentRememberMeServices.java


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