akothari Posted November 6, 2012 Share Posted November 6, 2012 Hello, I am new to Jaspersoft & am trying to try implement row level security at a domain level. I have a very simple domain (one user table with a user_id column). This user_id references the ID of the users already present in Jaspersoft. (Basically, I want the logged in user to see his details in the report). When I just defined the domain without any security, domain was created fine, I could create views & reports. But when I attach the security file, the domain is throwing up errors. This is the error I get - The Domain data source /Test_Domain is invalid. exception parsing filter string 'public_test.user_id == authentication.getPrincipal().getId()' This is the security file - <securityDefinition xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0" itemGroupDefaultAccess="granted"><resourceAccessGrants><resourceAccessGrantList id="public_test_List" label="ListLabel" resourceId="public_test"><resourceAccessGrants><resourceAccessGrant id="public_test_row_access_grant_1"><principalExpression><![CDATA[authentication.getPrincipal().getId() > 0 ]]> </principalExpression><filterExpression>public_test.user_id == authentication.getPrincipal().getId()</filterExpression></resourceAccessGrant></resourceAccessGrants> </resourceAccessGrantList> </resourceAccessGrants></securityDefinition> Any thoughts on what I am doing wrong. I am on Jaspersoft 4.7 Any help is appreciated. Thanks A Link to comment Share on other sites More sharing options...
andrews Posted November 7, 2012 Share Posted November 7, 2012 Hi,The filter expression is an expression in DomEL expression language.To access authentication object, you need to use groovy call, i.e. the expression should look like :<filterExpression>public_test.user_id == groovy('authentication.getPrincipal().getId()')</filterExpression> Note that principal expression is already in the groovy scope. Andrew S. Link to comment Share on other sites More sharing options...
akothari Posted November 7, 2012 Author Share Posted November 7, 2012 This comment was blocked because Project Honeypot indicates it came from a suspicious IP address. Link to comment Share on other sites More sharing options...
akothari Posted November 7, 2012 Author Share Posted November 7, 2012 Thanks Andrew.When I added the groovy code, I get the following errorThe Domain data source /Test_Domain is invalid. exception parsing filter string 'public_test.user_id == groovy('authentication.getPrincipal().getId()')' Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now