Revision 47841 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.downloader/org.gvsig.downloader.swing/org.gvsig.downloader.swing.scribejava/src/main/java/org/gvsig/downloader/swing/scribejava/keycloak/DownloaderAuthenticationKeycloakConfig.java

View differences:

DownloaderAuthenticationKeycloakConfig.java
10 10
import org.apache.commons.lang3.StringUtils;
11 11
import org.gvsig.downloader.DownloaderAuthenticationConfig;
12 12
import org.gvsig.downloader.DownloaderCredentials;
13
import org.gvsig.downloader.DownloaderLocator;
14 13
import org.gvsig.downloader.DownloaderManager;
15 14
import org.gvsig.downloader.spi.AbstractDownloaderAuthenticationConfig;
16 15
import static org.gvsig.downloader.swing.scribejava.keycloak.DownloaderAuthenticationKeycloakFactory.AUTH_MODE_KEYCLOAK;
16
import org.gvsig.json.Json;
17 17
import org.gvsig.json.JsonObjectBuilder;
18 18
import org.gvsig.tools.ToolsLocator;
19 19
import org.gvsig.tools.dynobject.DynStruct;
......
33 33
 */
34 34
public class DownloaderAuthenticationKeycloakConfig 
35 35
        extends AbstractDownloaderAuthenticationConfig
36
        implements DownloaderAuthenticationConfig, Persistent, LabeledValue<DownloaderAuthenticationConfig>
36
        implements DownloaderAuthenticationConfig, LabeledValue<DownloaderAuthenticationConfig>
37 37
    {
38 38
    
39 39
    private static final String DEFAULT_CLIENTID = "gvsigdesktop";
......
44 44
    
45 45
    private String clientid;
46 46
    private String realm;
47
    private String baseurl;
47
    private String keycloakBaseurl;
48 48
    private int localPort;
49 49
    private String scope;
50 50

  
51
    public DownloaderAuthenticationKeycloakConfig(DownloaderAuthenticationKeycloakFactory factory, String urlOnline) {
52
        super(factory,urlOnline);
51
    public DownloaderAuthenticationKeycloakConfig(DownloaderAuthenticationKeycloakFactory factory, String serviceUrl) {
52
        super(AUTH_MODE_KEYCLOAK, factory,serviceUrl);
53 53
        this.clientid = DEFAULT_CLIENTID;
54 54
        this.scope = DEFAULT_SCOPE;
55 55
        this.localPort = DEFAULT_LOCALPORT;
56 56
        this.realm = null;
57
        this.baseurl = null;
57
        this.keycloakBaseurl = null;
58 58
    }
59 59
    
60 60
    public DownloaderAuthenticationKeycloakConfig() {
......
74 74
        builder.append("clientid=").append(this.clientid).append(";");
75 75
        builder.append("scope=").append(this.scope).append(";");
76 76
        builder.append("realm=").append(this.realm).append(";");
77
        builder.append("baseurl=").append(this.baseurl).append(";");
77
        builder.append("baseurl=").append(this.keycloakBaseurl).append(";");
78 78
        return builder.toString();        
79 79
    }
80 80

  
......
82 82
        return localPort;
83 83
    }
84 84

  
85
    public String getBaseurl() {
86
        return baseurl;
85
    public String getKeycloakBaseurl() {
86
        return keycloakBaseurl;
87 87
    }
88 88

  
89 89
    public String getRealm() {
......
98 98
        return scope;
99 99
    }
100 100

  
101
    public void setBaseurl(String baseurl) {
102
        this.baseurl = baseurl;
101
    public void setKeycloakBaseurl(String keycloakBaseurl) {
102
        this.keycloakBaseurl = keycloakBaseurl;
103 103
    }
104 104

  
105 105
    public void setLocalPort(int localPort) {
......
126 126
        if( StringUtils.isBlank(realm) ) {
127 127
            return null;
128 128
        }
129
        if( StringUtils.isBlank(baseurl) ) {
129
        if( StringUtils.isBlank(keycloakBaseurl) ) {
130 130
            return null;
131 131
        }
132 132
        if( localPort<1024  ) {
......
162 162

  
163 163
    @Override
164 164
    public void fromJson(JsonObject json) {
165
        DownloaderManager manager = DownloaderLocator.getDownloaderManager();
165
//        DownloaderManager manager = DownloaderLocator.getDownloaderManager();
166 166
        String type = json.getString("type", null);
167 167
        if( type!=null ) {
168 168
            if( !StringUtils.equalsIgnoreCase(type, "OAuth") ) {
169 169
                throw new IllegalArgumentException("Invalid value of type '"+type+"' for '"+AUTH_MODE_KEYCLOAK+"'.");
170 170
            }
171
            this.factory = manager.getDownloaderAuthenticationFactory(AUTH_MODE_KEYCLOAK);
171
//            this.factory = manager.getDownloaderAuthenticationFactory(AUTH_MODE_KEYCLOAK);
172 172
            this.realm = json.getString("realm", null);
173
            this.baseurl = json.getString("url", null);
174
            if( StringUtils.isNotBlank(this.baseurl) ) {
175
                if( this.baseurl.endsWith("/") ) {
176
                    this.baseurl = this.baseurl+"realms";
173
            this.keycloakBaseurl = json.getString("url", null);
174
            if( StringUtils.isNotBlank(this.keycloakBaseurl) ) {
175
                if( this.keycloakBaseurl.endsWith("/") ) {
176
                    this.keycloakBaseurl = this.keycloakBaseurl+"realms";
177 177
                } else {
178
                    this.baseurl = this.baseurl+"/realms";
178
                    this.keycloakBaseurl = this.keycloakBaseurl+"/realms";
179 179
                }
180 180
            }
181 181
        } else {
......
183 183
            this.clientid = json.getString("clientid", null);
184 184
            this.scope = json.getString("scope", null);
185 185
            this.realm = json.getString("realm", null);
186
            this.baseurl = json.getString("baseurl", null);
186
            this.keycloakBaseurl = json.getString("baseurl", null);
187 187
            this.localPort = json.getInt("localPort", 0);                
188 188
        }
189 189
    }
......
191 191
    @Override
192 192
    public JsonObjectBuilder toJsonBuilder() {
193 193
        JsonObjectBuilder builder = super.toJsonBuilder();
194
        builder.add_class(this);
194 195
        builder.add("clientid", this.clientid);
195 196
        builder.add("scope", this.scope);
196 197
        builder.add("realm", this.realm);
197
        builder.add("baseurl", this.baseurl);
198
        builder.add("baseurl", this.keycloakBaseurl);
198 199
        builder.add("localPort", this.localPort);
199 200
        return builder;
200 201
    }
201 202

  
202 203
    @Override
203 204
    public void saveToState(PersistentState state) throws PersistenceException {
204
        state.set("factory",this.factory.getProviderName());
205
        super.saveToState(state);
205 206
        state.set("clientid",this.clientid);
206 207
        state.set("scope",this.scope);
207
//        state.set("urlOnline",this.urlOnline);
208
        state.set("baseurl",this.baseurl);
208
        state.set("baseurl",this.keycloakBaseurl);
209 209
        state.set("realm",this.realm);
210 210
        state.set("localPort",this.localPort);
211 211
    }
212 212

  
213 213
    @Override
214 214
    public void loadFromState(PersistentState state) throws PersistenceException {
215
        String factoryName = state.getString("factory");
216
        this.factory = DownloaderLocator.getDownloaderManager().getDownloaderAuthenticationFactory(factoryName);
215
        super.loadFromState(state);
217 216
        this.clientid = state.getString("clientid");
218 217
        this.scope = state.getString("scope");
219
//        this.urlOnline = state.getString("urlOnline");
220
        this.baseurl = state.getString("baseurl");
218
        this.keycloakBaseurl = state.getString("baseurl");
221 219
        this.realm = state.getString("realm");
222 220
        this.localPort = state.getInt("localPort");
223 221
    }
......
227 225
        if (manager.getDefinition(PERSISTENT_DEFINITION_NAME) == null) {
228 226
            DynStruct definition = manager.addDefinition(DownloaderAuthenticationKeycloakConfig.class,
229 227
                    PERSISTENT_DEFINITION_NAME, 
230
                    "UserIdentificationKeycloakConfig persistence definition", null, null
231
            );            
232
            definition.addDynFieldString("factory");
228
                    "DownloaderAuthenticationKeycloakConfig persistence definition", null, null
229
            );     
230
            definition.extend(
231
                PersistenceManager.PERSISTENCE_NAMESPACE, 
232
                DownloaderAuthenticationConfig.PERSISTENT_DEFINITION_NAME
233
            );
233 234
            definition.addDynFieldString("clientid");
234 235
            definition.addDynFieldString("scope");
235
//            definition.addDynFieldString("urlOnline");
236 236
            definition.addDynFieldString("baseurl");
237 237
            definition.addDynFieldString("realm");
238 238
            definition.addDynFieldInt("localPort");
239 239
        }
240
        Json.registerSerializer(DownloaderAuthenticationKeycloakConfig.class);
240 241
    }
241 242

  
242 243
    @Override
243 244
    public String getLabel() {
244
        return String.format("%s - %s", this.baseurl, this.realm);
245
        return String.format("%s - %s", this.keycloakBaseurl, this.realm);
245 246
    }
246 247

  
247 248
    @Override
......
251 252

  
252 253
    @Override
253 254
    public String toString() {
254
        return String.format(
255
//           "Factory: %s\ngvSIG online URL: %s\nKeycloak URL:%s\nRealm: %s\nLocal port:%d", 
255
        return String.format(//           "Factory: %s\ngvSIG online URL: %s\nKeycloak URL:%s\nRealm: %s\nLocal port:%d", 
256 256
           "Factory: %s\nKeycloak URL:%s\nRealm: %s\nLocal port:%d", 
257 257
           this.getFactory().getProviderName(),
258 258
//           this.getUrlOnline(),
259
           this.getBaseurl(),
259
this.getKeycloakBaseurl(),
260 260
           this.getRealm(),
261 261
           this.getLocalPort()
262 262
        );
......
270 270
        DownloaderKeycloakCredentials theCredentials = (DownloaderKeycloakCredentials)credentials;
271 271
        DownloaderAuthenticationKeycloakConfig otherConfig = theCredentials.getConfig();
272 272
        
273
        if (!DownloaderManager.areSameURLs(this.getBaseurl(), otherConfig.getBaseurl())) {
273
        if (!DownloaderManager.areSameURLs(this.getKeycloakBaseurl(), otherConfig.getKeycloakBaseurl())) {
274 274
            return null;
275 275
        }
276 276
        if (!StringUtils.equals(this.getRealm(), otherConfig.getRealm())) {

Also available in: Unified diff