Jump to content
We've recently updated our Privacy Statement, available here ×

Row Level Security - Domain level


akothari

Recommended Posts

 

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

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...