Sam, Paulo, Thank you very much for explanations and references.
Oleg On Mon, Jan 25, 2016 at 10:08 AM, Sam Tunnicliffe <s...@beobal.com> wrote: > Paulo is correct in saying that C* doesn't have a direct equivalent of > SecurityContextHolder. Authenticated principal info is retrievable from the > QueryState during query execution but a) this isn't available to every > method in the call chain and b) its scope is limited to the coordinator for > the request. That is, it isn't serialized and included in the read/mutation > messages which the coordinator distributes to the replicas. So you could > produce a level of audit trail by providing a custom QueryHandler (See > CASSANDRA-6659) that logs each statement along with the principal. But if > the goal is indeed that "every log message in file should start with > username of the user, who initiated this action", it's isn't really > feasible right now > > On Mon, Jan 25, 2016 at 3:52 PM, Paulo Motta <pauloricard...@gmail.com> > wrote: > >> That would work, but afaik Cassandra doesn't have an equivalent of >> RequestContextHolder/SecurityContextHolder that is able to retrieve the >> user/session of a given thread/request (maybe I'm wrong as I'm no auth >> expert), so if these don't exist we'd need to add equivalent to those or do >> it via MDC (set the context when request arrives, propagate to down stream >> threads, cleanup), which can become quite messy as shown in CASSANDRA-7276. >> >> For CQL statements perhaps the query tracing infrastructure could be >> reused to provide that info, but that would require further investigation. >> See CASSANDRA-1123 for more details on that. >> >> 2016-01-25 12:30 GMT-03:00 oleg yusim <olegyu...@gmail.com>: >> >>> Paulo, >>> >>> Ideally - all the actions (security purposes, preserving completness of >>> the audit trail). How about this approach: >>> http://www.codelord.net/2010/08/27/logging-with-a-context-users-in-logback-and-spring-security/ >>> ? >>> Would that work? Or you would rather suggest to go MDC way? >>> >>> Thanks, >>> >>> Oleg >>> >>> On Mon, Jan 25, 2016 at 9:23 AM, Paulo Motta <pauloricard...@gmail.com> >>> wrote: >>> >>>> What kind of actions? nodetool/system actions or cql statements? >>>> >>>> You could probably achieve identity-based logging with logback Mapped >>>> Diagnostic Context (MDC - logback.qos.ch/manual/mdc.html), but you'd >>>> need to patch your own Cassandra jars in many locations to provide that >>>> information to the logging context, so not exactly a trivial thing to do. >>>> We tried using that to print ks/cf names on log messages but it became a >>>> bit messy due to the SEDA architecture as you need to patch executors to >>>> inherit identifiers from parent threads and cleanup afterwards. See >>>> CASSANDRA-7276 for more background. >>>> >>>> 2016-01-25 12:09 GMT-03:00 oleg yusim <olegyu...@gmail.com>: >>>> >>>>> I want to try to re-phrase my question here... what I'm trying to >>>>> achieve is identity-based logging. I.e. every log message in file should >>>>> start with username of the user, who initiated this action. Would that be >>>>> possible to achieve? If so, can you give me a brief example? >>>>> >>>>> Thanks, >>>>> >>>>> Oleg >>>>> >>>>> On Thu, Jan 21, 2016 at 2:57 PM, oleg yusim <olegyu...@gmail.com> >>>>> wrote: >>>>> >>>>>> Joel, >>>>>> >>>>>> Thanks for reference. What I'm trying to achieve, is to add the name >>>>>> of the user, who initiated logged action. I tried c{5}, but what I see is >>>>>> that; >>>>>> >>>>>> TRACE [GossipTasks:1] c{5} 2016-01-21 20:51:17,619 Gossiper.java:700 >>>>>> - Performing status check ... >>>>>> >>>>>> I think, I'm missing something here. Any suggestions? >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Oleg >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jan 21, 2016 at 1:30 PM, Joel Knighton < >>>>>> joel.knigh...@datastax.com> wrote: >>>>>> >>>>>>> Cassandra uses logback as its backend for logging. >>>>>>> >>>>>>> You can find information about configuring logging in Cassandra by >>>>>>> searching for "Configuring logging" on docs.datastax.com and >>>>>>> selecting the documentation for your version. >>>>>>> >>>>>>> The documentation for PatternLayouts (the pattern string about which >>>>>>> you're asking) in logback is available in the logback manual under the >>>>>>> section for Conversion Words >>>>>>> http://logback.qos.ch/manual/layouts.html#conversionWord >>>>>>> >>>>>>> >>>>>>> On Thu, Jan 21, 2016 at 1:21 PM, oleg yusim <olegyu...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Greetings, >>>>>>>> >>>>>>>> Guys, can you, please, point me to documentation on how to >>>>>>>> configure format of logs? I want make it clear, I'm talking about >>>>>>>> formatting i.e. this: >>>>>>>> >>>>>>>> <pattern>%-5level %date{HH:mm:ss,SSS} %msg%n</pattern> >>>>>>>> >>>>>>>> What if I want to add another parameters into this string? Is there >>>>>>>> a list of available parameters here and syntax? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Oleg >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> <http://www.datastax.com/> >>>>>>> >>>>>>> Joel Knighton >>>>>>> Cassandra Developer | joel.knigh...@datastax.com >>>>>>> >>>>>>> <https://www.linkedin.com/company/datastax> >>>>>>> <https://www.facebook.com/datastax> <https://twitter.com/datastax> >>>>>>> <https://plus.google.com/+Datastax/about> >>>>>>> <http://feeds.feedburner.com/datastax> >>>>>>> <https://github.com/datastax/> >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >