двуфакторно удостоверяване с spring oauth2 поток на парола за собственик на ресурс

Възможно ли е да се приложи 2-факторно удостоверяване с поток от пароли за пролетна клетва? Мисля да използвам http филтър на крайната точка /oauth/token. Моето предоставяне на токен за достъп oauth се извършва през REST, така че целият процес на удостоверяване ще бъде спокоен.

Това би бил моят персонализиран филтър, но не съм сигурен къде да го свържа:

 public class TwoFactorAuthenticationFilter extends UsernamePasswordAuthenticationFilter
{
 private String extraParameter = "extra";
 private String delimiter = ":";


/**
 * Given an {@link HttpServletRequest}, this method extracts the username and the extra input
 * values and returns a combined username string of those values separated by the delimiter
 * string.
 *
 * @param request The {@link HttpServletRequest} containing the HTTP request variables from
 *   which the username client domain values can be extracted
 */
@Override
protected String obtainUsername(HttpServletRequest request)
{
    String username = request.getParameter(getUsernameParameter());
    String extraInput = request.getParameter(getExtraParameter());

    String combinedUsername = username + getDelimiter() + extraInput;

    System.out.println("Combined username = " + combinedUsername);
    return combinedUsername;
}

/**
 * @return The parameter name which will be used to obtain the extra input from the login request
 */
public String getExtraParameter()
{
    return this.extraParameter;
}

/**
 * @param extraParameter The parameter name which will be used to obtain the extra input from the login request
 */
public void setExtraParameter(String extraParameter)
{
    this.extraParameter = extraParameter;
}

/**
 * @return The delimiter string used to separate the username and extra input values in the
 * string returned by <code>obtainUsername()</code>
 */
public String getDelimiter()
{
    return this.delimiter;
}

/**
 * @param delimiter The delimiter string used to separate the username and extra input values in the
 * string returned by <code>obtainUsername()</code>
 */
public void setDelimiter(String delimiter)
{
    this.delimiter = delimiter;
}

}


person Dean    schedule 21.04.2014    source източник
comment
Така че открих, че ResourceOwnerPasswordTokenGranter -›getOAuth2Authentication е методът, който екстраполира потребителското име и паролата и след това извиква мениджъра за удостоверяване. Има ли начин да предоставя собствен персонализиран ResourceOwnerPasswordTokenGranter?   -  person Dean    schedule 22.04.2014
comment
Тази статия основно решава проблема с връзка   -  person Dean    schedule 23.04.2014