Hi, In our project, we currently need to interact with differents types of swift implementations : - Ceph with radosgw - NetApp appliance with swift endpoint
Thoses implementions use "identity v1 protocol" which is an old but simple API for the authentication and don't use identity v2 protocol ( http://developer.openstack.org/api-ref/identity/v2/index.html) which is implemented by jclouds in openstack-keystone module . *State of jclouds* The openstack swift "official" client (in python) manage this v1 protocol ( http://docs.openstack.org/developer/python-swiftclient/swiftclient.html) so even if we don't have a specification, we will use the code of the official client for the implementation. In jclouds, there is currently a sort-of v1 identity protocol in the openstack-swift module: in apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/config/SwiftAuthenticationModule.java, there is a tempAuthCredentials which is almost the identity v1 protocol except that the name of the headers was not the same : = X-Storage-User vs X-Auth-User = X-Storage-Path vs X-Auth-Key *Proposal* In our project, we think about the following solution = Keep the current behaviour as default = Add 2 parameters to change the header name through variables in the Properties put in the Builder like that : Properties overrides = new Properties(); overrides.setProperty("jclouds.keystone.credential-type", "tempAuthCredentials"); overrides.setProperty("jclouds.swift.tempAuth.headerUser", "X-Auth-User"); overrides.setProperty("jclouds.swift.tempAuth.headerPass", "X-Auth-Pass"); swiftApi = ContextBuilder.newBuilder(provider) .endpoint(args[1]) .credentials(identity, credential) .modules(modules) .overrides(overrides) .buildApi(SwiftApi.class); *Questions* 1) Will this behaviour acceptable upstream ? (and what is the lifecycle planned for this tempAuthCredentials) 2) As working on the patch, we have issues to use the variables injected by the overrides method. After analysing some parts of the code of openstack-keystone module, i tried to use @Named and @Inject but without success. Is there some doc or some hints on how to do that ? Thanks in advance, Regards, Etienne Carrière