gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.audit.ApplicationAuditLogger クラス
org.xdi.oxauth.audit.ApplicationAuditLogger 連携図
Collaboration graph

公開メンバ関数

void updateConfiguration (@Observes @ConfigurationUpdate AppConfiguration appConfiguration)
 
void init ()
 
void sendMessage (OAuth2AuditLog oAuth2AuditLog)
 
void destroy ()
 

非公開メンバ関数

boolean tryToEstablishJMSConnection ()
 
boolean tryToEstablishJMSConnectionImpl ()
 
void loggingThroughJMS (OAuth2AuditLog oAuth2AuditLog)
 
void loggingThroughFile (OAuth2AuditLog oAuth2AuditLog)
 
boolean isJmsConfigChanged ()
 
Boolean isEnabledOAuthAuditnLogging ()
 
Set< String > getJmsBrokerURISet ()
 
String getJmsUserName ()
 
String getJmsPassword ()
 

非公開変数類

Logger log
 
final String BROKER_URL_PREFIX = "failover:("
 
final String BROKER_URL_SUFFIX = ")?timeout=5000&jms.useAsyncSend=true"
 
final int ACK_MODE = Session.AUTO_ACKNOWLEDGE
 
final String CLIENT_QUEUE_NAME = "oauth2.audit.logging"
 
final boolean transacted = false
 
volatile PooledConnectionFactory pooledConnectionFactory
 
Set< String > jmsBrokerURISet
 
String jmsUserName
 
String jmsPassword
 
AppConfiguration appConfiguration
 
final ReentrantLock lock = new ReentrantLock()
 
boolean updateState
 
Boolean enabledOAuthAuditnLogging
 

詳解

関数詳解

◆ destroy()

void org.xdi.oxauth.audit.ApplicationAuditLogger.destroy ( )
inline
94  {
95  if (this.pooledConnectionFactory == null)
96  return;
97  this.pooledConnectionFactory.clear();
98  this.pooledConnectionFactory = null;
99  }
volatile PooledConnectionFactory pooledConnectionFactory
Definition: ApplicationAuditLogger.java:50

◆ getJmsBrokerURISet()

Set<String> org.xdi.oxauth.audit.ApplicationAuditLogger.getJmsBrokerURISet ( )
inlineprivate
200  {
202  }
Set< String > getJmsBrokerURISet()
Definition: AppConfiguration.java:1225
AppConfiguration appConfiguration
Definition: ApplicationAuditLogger.java:57

◆ getJmsPassword()

String org.xdi.oxauth.audit.ApplicationAuditLogger.getJmsPassword ( )
inlineprivate
208  {
210  }
String getJmsPassword()
Definition: AppConfiguration.java:1241
AppConfiguration appConfiguration
Definition: ApplicationAuditLogger.java:57

◆ getJmsUserName()

String org.xdi.oxauth.audit.ApplicationAuditLogger.getJmsUserName ( )
inlineprivate
204  {
206  }
String getJmsUserName()
Definition: AppConfiguration.java:1233
AppConfiguration appConfiguration
Definition: ApplicationAuditLogger.java:57

◆ init()

void org.xdi.oxauth.audit.ApplicationAuditLogger.init ( )
inline
69  {
70  if (BooleanUtils.isNotTrue(isEnabledOAuthAuditnLogging())) {
71  return;
72  }
73 
75  }
Boolean isEnabledOAuthAuditnLogging()
Definition: ApplicationAuditLogger.java:192
boolean tryToEstablishJMSConnection()
Definition: ApplicationAuditLogger.java:101

◆ isEnabledOAuthAuditnLogging()

Boolean org.xdi.oxauth.audit.ApplicationAuditLogger.isEnabledOAuthAuditnLogging ( )
inlineprivate
192  {
193  if (this.updateState) {
195  }
196 
197  return this.enabledOAuthAuditnLogging;
198  }
Boolean getEnabledOAuthAuditLogging()
Definition: AppConfiguration.java:1217
Boolean enabledOAuthAuditnLogging
Definition: ApplicationAuditLogger.java:62
boolean updateState
Definition: ApplicationAuditLogger.java:61
AppConfiguration appConfiguration
Definition: ApplicationAuditLogger.java:57

◆ isJmsConfigChanged()

boolean org.xdi.oxauth.audit.ApplicationAuditLogger.isJmsConfigChanged ( )
inlineprivate
187  {
188  return !Objects.equal(this.jmsUserName, getJmsUserName()) || !Objects.equal(this.jmsPassword, getJmsPassword())
189  || !Objects.equal(this.jmsBrokerURISet, getJmsBrokerURISet());
190  }
String getJmsUserName()
Definition: ApplicationAuditLogger.java:204
Set< String > getJmsBrokerURISet()
Definition: ApplicationAuditLogger.java:200
String jmsUserName
Definition: ApplicationAuditLogger.java:53
String jmsPassword
Definition: ApplicationAuditLogger.java:54
Set< String > jmsBrokerURISet
Definition: ApplicationAuditLogger.java:52
String getJmsPassword()
Definition: ApplicationAuditLogger.java:208

◆ loggingThroughFile()

void org.xdi.oxauth.audit.ApplicationAuditLogger.loggingThroughFile ( OAuth2AuditLog  oAuth2AuditLog)
inlineprivate
179  {
180  try {
181  log.info(ServerUtil.asPrettyJson(oAuth2AuditLog));
182  } catch (IOException e) {
183  log.error("Can't serialize the audit log", e);
184  }
185  }
Logger log
Definition: ApplicationAuditLogger.java:42

◆ loggingThroughJMS()

void org.xdi.oxauth.audit.ApplicationAuditLogger.loggingThroughJMS ( OAuth2AuditLog  oAuth2AuditLog)
inlineprivate
150  {
151  QueueConnection connection = null;
152  try {
153  connection = pooledConnectionFactory.createQueueConnection();
154  connection.start();
155 
156  QueueSession session = connection.createQueueSession(transacted, ACK_MODE);
157  MessageProducer producer = session.createProducer(session.createQueue(CLIENT_QUEUE_NAME));
158 
159  TextMessage txtMessage = session.createTextMessage();
160  txtMessage.setText(ServerUtil.asPrettyJson(oAuth2AuditLog));
161  producer.send(txtMessage);
162  } catch (JMSException e) {
163  log.error("Can't send message", e);
164  } catch (IOException e) {
165  log.error("Can't serialize the audit log", e);
166  } catch (Exception e) {
167  log.error("Can't send message, please check your activeMQ configuration.", e);
168  } finally {
169  if (connection == null)
170  return;
171  try {
172  connection.close();
173  } catch (JMSException e) {
174  log.error("Can't close connection.");
175  }
176  }
177  }
final int ACK_MODE
Definition: ApplicationAuditLogger.java:46
volatile PooledConnectionFactory pooledConnectionFactory
Definition: ApplicationAuditLogger.java:50
Logger log
Definition: ApplicationAuditLogger.java:42
final boolean transacted
Definition: ApplicationAuditLogger.java:48
final String CLIENT_QUEUE_NAME
Definition: ApplicationAuditLogger.java:47

◆ sendMessage()

void org.xdi.oxauth.audit.ApplicationAuditLogger.sendMessage ( OAuth2AuditLog  oAuth2AuditLog)
inline
78  {
79  if (BooleanUtils.isNotTrue(isEnabledOAuthAuditnLogging())) {
80  return;
81  }
82 
83  if ((this.pooledConnectionFactory == null) || isJmsConfigChanged()) {
85  loggingThroughJMS(oAuth2AuditLog);
86  else
87  loggingThroughFile(oAuth2AuditLog);
88  } else {
89  loggingThroughJMS(oAuth2AuditLog);
90  }
91  }
volatile PooledConnectionFactory pooledConnectionFactory
Definition: ApplicationAuditLogger.java:50
boolean isJmsConfigChanged()
Definition: ApplicationAuditLogger.java:187
void loggingThroughFile(OAuth2AuditLog oAuth2AuditLog)
Definition: ApplicationAuditLogger.java:179
Boolean isEnabledOAuthAuditnLogging()
Definition: ApplicationAuditLogger.java:192
void loggingThroughJMS(OAuth2AuditLog oAuth2AuditLog)
Definition: ApplicationAuditLogger.java:150
boolean tryToEstablishJMSConnection()
Definition: ApplicationAuditLogger.java:101

◆ tryToEstablishJMSConnection()

boolean org.xdi.oxauth.audit.ApplicationAuditLogger.tryToEstablishJMSConnection ( )
inlineprivate
101  {
102  lock.lock();
103  try {
104  // Check if another thread init JMS pool already
105  if ((this.pooledConnectionFactory != null) && !isJmsConfigChanged()) {
107  }
108 
109  return true;
110  } finally {
111  lock.unlock();
112  }
113  }
boolean tryToEstablishJMSConnectionImpl()
Definition: ApplicationAuditLogger.java:115
volatile PooledConnectionFactory pooledConnectionFactory
Definition: ApplicationAuditLogger.java:50
boolean isJmsConfigChanged()
Definition: ApplicationAuditLogger.java:187
final ReentrantLock lock
Definition: ApplicationAuditLogger.java:59

◆ tryToEstablishJMSConnectionImpl()

boolean org.xdi.oxauth.audit.ApplicationAuditLogger.tryToEstablishJMSConnectionImpl ( )
inlineprivate
115  {
116  destroy();
117 
118  Set<String> jmsBrokerURISet = getJmsBrokerURISet();
119  if (BooleanUtils.isNotTrue(isEnabledOAuthAuditnLogging()) || CollectionUtils.isEmpty(jmsBrokerURISet))
120  return false;
121 
122  this.jmsBrokerURISet = new HashSet<String>(jmsBrokerURISet);
123  this.jmsUserName = getJmsUserName();
124  this.jmsPassword = getJmsPassword();
125 
126  Iterator<String> jmsBrokerURIIterator = jmsBrokerURISet.iterator();
127 
128  StringBuilder uriBuilder = new StringBuilder();
129  while (jmsBrokerURIIterator.hasNext()) {
130  String jmsBrokerURI = jmsBrokerURIIterator.next();
131  uriBuilder.append("tcp://");
132  uriBuilder.append(jmsBrokerURI);
133  if (jmsBrokerURIIterator.hasNext())
134  uriBuilder.append(",");
135  }
136 
137  String brokerUrl = BROKER_URL_PREFIX + uriBuilder + BROKER_URL_SUFFIX;
138 
139  ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(this.jmsUserName, this.jmsPassword,
140  brokerUrl);
141  this.pooledConnectionFactory = new PooledConnectionFactory(connectionFactory);
142 
143  pooledConnectionFactory.setIdleTimeout(5000);
144  pooledConnectionFactory.setMaxConnections(10);
145  pooledConnectionFactory.start();
146 
147  return true;
148  }
String getJmsUserName()
Definition: ApplicationAuditLogger.java:204
Set< String > getJmsBrokerURISet()
Definition: ApplicationAuditLogger.java:200
String jmsUserName
Definition: ApplicationAuditLogger.java:53
final String BROKER_URL_PREFIX
Definition: ApplicationAuditLogger.java:44
String jmsPassword
Definition: ApplicationAuditLogger.java:54
Set< String > jmsBrokerURISet
Definition: ApplicationAuditLogger.java:52
volatile PooledConnectionFactory pooledConnectionFactory
Definition: ApplicationAuditLogger.java:50
String getJmsPassword()
Definition: ApplicationAuditLogger.java:208
void destroy()
Definition: ApplicationAuditLogger.java:94
final String BROKER_URL_SUFFIX
Definition: ApplicationAuditLogger.java:45
Boolean isEnabledOAuthAuditnLogging()
Definition: ApplicationAuditLogger.java:192

◆ updateConfiguration()

void org.xdi.oxauth.audit.ApplicationAuditLogger.updateConfiguration ( @Observes @ConfigurationUpdate AppConfiguration  appConfiguration)
inline
64  {
65  this.updateState = true;
66  }
boolean updateState
Definition: ApplicationAuditLogger.java:61

メンバ詳解

◆ ACK_MODE

final int org.xdi.oxauth.audit.ApplicationAuditLogger.ACK_MODE = Session.AUTO_ACKNOWLEDGE
private

◆ appConfiguration

AppConfiguration org.xdi.oxauth.audit.ApplicationAuditLogger.appConfiguration
private

◆ BROKER_URL_PREFIX

final String org.xdi.oxauth.audit.ApplicationAuditLogger.BROKER_URL_PREFIX = "failover:("
private

◆ BROKER_URL_SUFFIX

final String org.xdi.oxauth.audit.ApplicationAuditLogger.BROKER_URL_SUFFIX = ")?timeout=5000&jms.useAsyncSend=true"
private

◆ CLIENT_QUEUE_NAME

final String org.xdi.oxauth.audit.ApplicationAuditLogger.CLIENT_QUEUE_NAME = "oauth2.audit.logging"
private

◆ enabledOAuthAuditnLogging

Boolean org.xdi.oxauth.audit.ApplicationAuditLogger.enabledOAuthAuditnLogging
private

◆ jmsBrokerURISet

Set<String> org.xdi.oxauth.audit.ApplicationAuditLogger.jmsBrokerURISet
private

◆ jmsPassword

String org.xdi.oxauth.audit.ApplicationAuditLogger.jmsPassword
private

◆ jmsUserName

String org.xdi.oxauth.audit.ApplicationAuditLogger.jmsUserName
private

◆ lock

final ReentrantLock org.xdi.oxauth.audit.ApplicationAuditLogger.lock = new ReentrantLock()
private

◆ log

Logger org.xdi.oxauth.audit.ApplicationAuditLogger.log
private

◆ pooledConnectionFactory

volatile PooledConnectionFactory org.xdi.oxauth.audit.ApplicationAuditLogger.pooledConnectionFactory
private

◆ transacted

final boolean org.xdi.oxauth.audit.ApplicationAuditLogger.transacted = false
private

◆ updateState

boolean org.xdi.oxauth.audit.ApplicationAuditLogger.updateState
private

このクラス詳解は次のファイルから抽出されました: