I thought to take a HashMap, because in the save method you could read the keys 
- but if the load method also returns String[] and the order of credentials is 
well known varags might be ok.

kind regards

Tobias

> Am 25.02.2015 um 05:14 schrieb Maxim Solodovnik <solomax...@gmail.com>:
> 
> Actually load() method return String[] (actually with arbitrary number of
> elements and arbitrary order) so I see no issue here, You read parameters
> in the same order as you wright them.
> Map<String,String> will make things worst IMHO since the order will not be
> the same
> 
> On Wed, Feb 25, 2015 at 4:16 AM, Tobias Soloschenko <
> tobiassolosche...@googlemail.com> wrote:
> 
>> Hi Maxim,
>> 
>> I think this isn't a good idea because the order in which the arguments
>> are added to the save method is important - and what if you want to let one
>> argument away? Then the rest would not used for their purpose.
>> 
>> Instead I would add another method save method that takes a Map with key
>> value pairs (key are used to identify the values)
>> map.put("username","tom");
>> map.put("password","secret);
>> map.put("host","127.0.0.1");
>> 
>> the save method could be invoked internally with
>> #save(map.get("username"),map.get("password"));
>> 
>> Another way:
>> 
>> Oracle uses system properties - (http://docs.oracle.com/
>> javase/7/docs/api/java/net/doc-files/net-properties.html)
>> System.setProperty("org.apache.auth.username","tom");
>> System.setProperty("org.apache.auth.password","secret");
>> the save method could be invoked internally with
>> #save(System.getProperty("org.apache.auth.username"),System.
>> getProperty("org.apache.auth.username"));
>> 
>> kind regards
>> 
>> Tobias
>> 
>> Am 24.02.15 um 17:09 schrieb Maxim Solodovnik:
>> 
>> Hello All,
>>> 
>>> recently I have proposed the patch to reduce copy/paste while implementing
>>> custom IAuthenticationStrategy.
>>> 
>>> Actually this interface have 2 methods which are not correlate to each
>>> other
>>> String[] load();
>>> void save(final String username, final String password);
>>> 
>>> in fact this is getter and setter but with different signatures
>>> The change I would like to propose is to replace (in Wicket7)
>>> void save(final String username, final String password);
>>> with
>>> void save(final String... credentials);
>>> 
>>> this will allow to easily store additional credentials (like domain) and
>>> will not introduce the code break since previous calls will work as
>>> expected
>>> 
>>> What do you think?
> 
> 
> -- 
> WBR
> Maxim aka solomax

Reply via email to