Фикс RequestAuthProvider

This commit is contained in:
Gravit 2018-12-26 22:12:41 +07:00
parent 4828e8e895
commit 78f9fed6e1
No known key found for this signature in database
GPG key ID: 061981E1E85D3216

View file

@ -12,15 +12,22 @@
public final class RequestAuthProvider extends AuthProvider { public final class RequestAuthProvider extends AuthProvider {
private String url; private String url;
private Pattern response; private transient Pattern pattern;
private String response;
private boolean usePermission; private boolean usePermission;
@Override
public void init()
{
pattern = Pattern.compile(response);
}
@Override @Override
public AuthProviderResult auth(String login, String password, String ip) throws IOException { public AuthProviderResult auth(String login, String password, String ip) throws IOException {
String currentResponse = IOHelper.request(new URL(getFormattedURL(login, password, ip))); String currentResponse = IOHelper.request(new URL(getFormattedURL(login, password, ip)));
// Match username // Match username
Matcher matcher = response.matcher(currentResponse); Matcher matcher = pattern.matcher(currentResponse);
return matcher.matches() && matcher.groupCount() >= 1 ? return matcher.matches() && matcher.groupCount() >= 1 ?
new AuthProviderResult(matcher.group("username"), SecurityHelper.randomStringToken(), usePermission ? new ClientPermissions(Long.getLong(matcher.group("permission"))) : new ClientPermissions()) : new AuthProviderResult(matcher.group("username"), SecurityHelper.randomStringToken(), usePermission ? new ClientPermissions(Long.getLong(matcher.group("permission"))) : new ClientPermissions()) :
authError(currentResponse); authError(currentResponse);