int iPos = idKey_RedirectUri.indexOf('#');
String idKey = idKey_RedirectUri.substring(0, iPos);
String redirectUri = idKey_RedirectUri.substring(iPos + 1);
if(idKey == null) return "invalid";
IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(idKey);
if(widgetInstance==null) return "invalid";
Collection<IStartFile> startFiles = widgetInstance.getWidget().getStartFiles();
String startFileUrl = null;
for(IStartFile startFile : startFiles) {
iPos = redirectUri.indexOf(startFile.getUrl());
if (iPos > -1) {
startFileUrl = startFile.getUrl();
break;
}
}
if (startFileUrl != null) {
redirectUri = redirectUri.substring(0, iPos + startFileUrl.length()) + "?idkey=" + idKey;
}
try {
redirectUri = URLEncoder.encode(redirectUri, "UTF-8");
} catch (UnsupportedEncodingException e) {
}
Collection<org.apache.wookie.beans.IFeature> widgetFeatures = widgetInstance.getWidget().getFeatures();
org.apache.wookie.beans.IFeature oAuthFeature = null;
for (org.apache.wookie.beans.IFeature aFeature : widgetFeatures) {
if (getName().equals(aFeature.getFeatureName())) {
oAuthFeature = aFeature;
break;