Changeset 29592 in osm for applications/editors/josm


Ignore:
Timestamp:
2013-05-14T07:58:48+02:00 (11 years ago)
Author:
zverik
Message:

[josm_geochat] Basic OSM Auth Proxy support (use '=' before a token)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/geochat/src/geochat/ChatServerConnection.java

    r29584 r29592  
    2222 */
    2323class ChatServerConnection {
     24    public static final String TOKEN_PREFIX = "=";
     25    private static final String TOKEN_PATTERN = "^[a-zA-Z0-9]{10}$";
     26   
    2427    private int userId;
    2528    private String userName;
     
    120123            return;
    121124        }
     125        String token = userName.startsWith(TOKEN_PREFIX) ? userName.substring(TOKEN_PREFIX.length()) : null;
     126        if( token != null && !token.matches(TOKEN_PATTERN) ) {
     127            fireLoginFailed("Incorrect token format");
     128            return;
     129        }
     130
    122131        try {
     132            String nameAttr = token != null ? "&token=" + token : "&name=" + URLEncoder.encode(userName, "UTF-8");
    123133            String query = "register&lat=" + pos.latToString(CoordinateFormat.DECIMAL_DEGREES)
    124134                    + "&lon=" + pos.lonToString(CoordinateFormat.DECIMAL_DEGREES)
    125                     + "&name=" + URLEncoder.encode(userName, "UTF8");
     135                    + nameAttr;
    126136            JsonQueryUtil.queryAsync(query, new JsonQueryCallback() {
    127137                public void processJson( JSONObject json ) {
     
    133143                        fireLoginFailed(tr("The server did not return user ID"));
    134144                    else {
    135                         login(json.getInt("uid"), userName);
     145                        String name = json.has("name") ? json.getString("name") : userName;
     146                        login(json.getInt("uid"), name);
    136147                    }
    137148                }
Note: See TracChangeset for help on using the changeset viewer.