class MobileAuthenticationConverter extends BaseAuthenticationConverter {
    private final static String PARAM_MOBILE= "mobile";

    @Override
    protected String supportGrantType() {
        return MobileAuthenticationToken.GRANT_TYPE.getValue();
    }

    @Override
    protected List<String> paramNames() {
        return List.of(PARAM_MOBILE, OAuth2ParameterNames.PASSWORD);
    }

    @Override
    protected BaseAuthenticationToken getToken(MultiValueMap<String, String> parameters) {<FILL_FUNCTION_BODY>}
}

        String mobile = OAuthEndpointUtils.getParam(parameters, PARAM_MOBILE);
        String password = OAuthEndpointUtils.getParam(parameters, OAuth2ParameterNames.PASSWORD);
        return new MobileAuthenticationToken(mobile, password);
    
<methods>public non-sealed void <init>() ,public org.springframework.security.core.Authentication convert(jakarta.servlet.http.HttpServletRequest) ,public Map<java.lang.String,java.lang.Object> getAdditionalParameters(MultiValueMap<java.lang.String,java.lang.String>, List<java.lang.String>) ,public org.springframework.security.core.Authentication getAuthentication(MultiValueMap<java.lang.String,java.lang.String>) ,public Set<java.lang.String> getRequestScopes(MultiValueMap<java.lang.String,java.lang.String>) <variables>