2016-05-17 9 views
0

無料APIを使用して、サードパーティソース(openweathermap.org/api)から天気情報を表示するコンポーネントを作成しました。このために私はサーブレットを作成し、それをMavenビルドを介してAEMにアップロードしました。コンポーネントは正常に動作しており、必要に応じて詳細を取得しています。管理者のみAEMコンポーネントの特定のAPIキーを変更/編集する

APIキーを使用しているため、コードを変更せずにキーを変更/更新し、CQを再起動せずにすぐに有効にする必要があります。 - 管理者のみがこれを行うことができるはずです。作成者はキーを参照したり、キーを心配するべきではありません。

参考リンク:system/console permissions

私は、フォーラムの多くが、無助けをしてきました。 http://localhost:4502/system/console/configMgrで作業しなければならないと確信していますが、どの部分が変更されているかは不明です。また、変更されたAPIキーを使用してサーブレットをトリガする方法もあります。 ありがとうございます

答えて

0

設定可能なOSGIサービスを作成することができます。 APIキーは、Felixコンソールから管理者が変更できるサービスのプロパティになります。

OSGIサービスを作成するには、Felix SCRアノテーションを使用し、適切なデプロイメント記述子を生成するために、Mavenビルドプロセス中にそれらを処理する必要があります。ここに簡単な例があります。

@Component(immediate=true, label="Weather Service", description="My weather service", metatype=true) 
@Service(value=WeatherService.class) 
public class WeatherServiceImpl implements WeatherService { 

    @Override 
    public String getWeatherInfo() { 
     return null; // call the weather api here 
    } 
} 

次のようにあなたの設定可能なプロパティを定義し、サービスをバンドルインストールに起動されたときに呼び出されるサービスのアクティブ化方法でに割り当て@Property注釈を使用してください。

@Property(value="123456789") 
static final String WEATHER_API_KEY = "weather.api.key"; 

private String weatherAPIKey; 


@Activate 
public void activate(final Map<String, Object> props) { 
    this.weatherAPIKey = (String)props.get(WEATHER_API_KEY); 
} 

これ以降、Felixコンソールで設定可能なサービスが表示されます。

著者は、Felixコンソールへのアクセス権を持ってはいけません。管理者だけがアクセス権を持つ必要があります。

関連する問題