Easiest thing is to probably just remove the constraint :-)  Though maybe
Marvin can shed some light since they store their information in a databse.
We actually write ours out to log files.
-Scott

-Scott Battaglia
PGP Public Key Id: 0x383733AA
LinkedIn: http://www.linkedin.com/in/scottbattaglia


On Wed, Apr 15, 2009 at 2:44 PM, Aleksandr Tarutin <[email protected]>wrote:

> Hello,
>
> I'm trying to setup audit trail with CAS following
> http://www.ja-sig.org/wiki/display/CASUM/Auditing+and+Statistics+Via+Inspektr
>
> When i try to authenticate (accessing Services Management application) I
> get the following exception:
>
> Exception in thread "pool-2-thread-2"
> org.springframework.dao.DataIntegrityViolationException:
> PreparedStatementCallback
> ; SQL [Insert into COM_AUDIT_TRAIL(AUD_USER, AUD_CLIENT_IP, AUD_SERVER_IP,
> AUD_RESOURCE, AUD_ACTION, APPLIC_CD, AUD_DATE
> ) Values(?, ?, ?, ?, ?, ?, ?)]; ORA-01400: cannot insert NULL into
> ("SSO01"."COM_AUDIT_TRAIL"."AUD_USER")
> ; nested exception is java.sql.SQLIntegrityConstraintViolationException:
> ORA-01400: cannot insert NULL into ("SSO01"."CO
> M_AUDIT_TRAIL"."AUD_USER")
>
>        at
> org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.j
> ava:228)
>        at
> org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTransl
> ator.java:72)
>        at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
>        at
> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:792)
>        at
> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:850)
>        at
> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:858)
>        at
> org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:237)
>        at
> org.inspektr.audit.support.JdbcAuditTrailManager$LoggingTask$1.doInTransactionWithoutResult(JdbcAuditTrailManager.ja
> va:96)
>        at
> org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutR
> esult.java:33)
>        at
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
>        at
> org.inspektr.audit.support.JdbcAuditTrailManager$LoggingTask.run(JdbcAuditTrailManager.java:89)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-01400:
> cannot insert NULL into ("SSO01"."COM_AUDIT_TRA
> IL"."AUD_USER")
>
>        at
> oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:85)
>        at
> oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
>        at
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
>        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
>        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
>        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
>        at
> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
>        at
> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:953)
>        at
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
>        at
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
>        at
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3468)
>        at
> oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
>        at
> org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
>        at
> org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:798)
>        at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)
>        ... 11 more
>
>
> Debugging the server shows that the method resolveFromInternal(final
> JoinPoint joinPoint) of class
> org.jasig.cas.audit.spi.TicketOrCredentialBasedAuditablePrincipalResolver
> returns the following values to be set into AUD_USER column:
> 1st pass: arg1 is Credentials, return is arg1.toString();
> 2nd pass: arg1 is TGT, return is
> TGT.getAuthentication().getPrincipal().getId();
> 3rd pass: arg1 is ST, call on line 50 of
> TicketOrCredentialBasedAuditablePrincipalResolver returns null and hence the
> method returns an empty string.
>
> We're using our own authentication handler.
>
> Any clues?
>
> Thank you,
>
> AT.
> --
> You are currently subscribed to [email protected] as:
> [email protected]
> To unsubscribe, change settings or access archives, see
> http://www.ja-sig.org/wiki/display/JSG/cas-user
>

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to