List of usage examples for org.hibernate Filter setParameterList
public Filter setParameterList(String name, Object[] values);
From source file:com.masetta.spann.orm.hibernate.support.HibernateSupport.java
License:Apache License
private static List<String> enableFilters(Session session, Collection<FilterActivation> filterList) { if (filterList == null || filterList.isEmpty()) return Collections.emptyList(); List<String> applied = new ArrayList<String>(); Filter filter; for (FilterActivation f : filterList) { String filterName = f.getName(); Collection<Map.Entry<String, Object>> parameters = f.getParameters(); // skip filters which are already enabled, filter = session.getEnabledFilter(filterName); if (filter != null) { if (f.getParameters().size() > 0) { throw new IllegalArgumentException("Filter '" + f.getName() + "' is already activated. Can not enable filter with different arguments."); }// w w w . ja v a 2s. co m continue; } filter = session.enableFilter(filterName); applied.add(filterName); for (Map.Entry<String, Object> e : parameters) { Object value = e.getValue(); if (value == null) { filter.setParameter(e.getKey(), value); } else if (value instanceof Collection) { filter.setParameterList(e.getKey(), (Collection) value); } else if (value.getClass().isArray()) { filter.setParameterList(e.getKey(), (Object[]) value); } else { filter.setParameter(e.getKey(), value); } } filter.validate(); } return applied; }
From source file:edu.purdue.cybercenter.dm.web.TermController.java
private String fetchAllTerms(HttpServletRequest request, HttpServletResponse response, boolean isTemplate) { Session session = DomainObjectHelper.getHbmSession(); Filter filter = session.enableFilter("mostRecentUpdatedTermFilter"); filter.setParameter("isTemplate", isTemplate); Filter assetStatusFilter = session.enableFilter("assetStatusFilter"); assetStatusFilter.setParameterList("statusIds", Arrays.asList(1)); String responseBody = listTerms(request, response, isTemplate ? "template" : "term"); session.disableFilter("assetStatusFilter"); session.disableFilter("mostRecentUpdatedTermFilter"); return responseBody; }
From source file:gov.nih.nci.security.authorization.instancelevel.InstanceLevelSecurityHelper.java
License:BSD License
/** * This method initializes the filter that are already added to the Sessionfactory. * <br>//from www.j a va2s . c o m * This method also initializes the defined filters configured in HBM/Classes/Packages based on the definedFilterNamesMap. * If definedFilterNamesMap contains 'ALL' as the Filter Name (key) then all defined filters are enabled. * <br> * This method first obtains the list of all the defined filters from the SessionFactory in the passes Session object. * It then just iterates through the filter list and sets the group names and the application name parameter. * * @param groupNames The names of the groups which are invoking the query * @param session The Hibernate Session initialized to execute this query * @param authorizationManager The CSM AuthorizationManager instance for this application * @param definedFilterNamesMap - Map of defined Filter Names and string value ( enable / disable ) to indicate that the filter should be enabled of disabled.<br>. * */ public static void initializeFiltersForGroups(String[] groupNames, Session session, AuthorizationManager authorizationManager, Map<String, String> definedFilterNamesMap) { List<String> sessionGroupFilterNamesList = new ArrayList<String>(); List<String> sessionDefinedFilterNamesList = new ArrayList<String>(); boolean enableAllDefinedFilterNames = false; Set definedFilterNames = null; if (definedFilterNamesMap != null && !definedFilterNamesMap.isEmpty()) { definedFilterNames = definedFilterNamesMap.keySet(); if (definedFilterNames.contains("ALL")) enableAllDefinedFilterNames = true; } SessionFactory sessionFactory = session.getSessionFactory(); Set sessionFilterNamesSet = sessionFactory.getDefinedFilterNames(); Iterator sessionFilterNamesSetIterator = sessionFilterNamesSet.iterator(); while (sessionFilterNamesSetIterator.hasNext()) { String filterName = (String) sessionFilterNamesSetIterator.next(); if (null != definedFilterNames) { if (enableAllDefinedFilterNames) { sessionDefinedFilterNamesList.add(filterName); } else { if (definedFilterNames.contains(filterName)) { String value = (String) definedFilterNamesMap.get(filterName); if (Constants.ENABLE.equalsIgnoreCase(value)) { sessionDefinedFilterNamesList.add(filterName); } } } } FilterDefinition filterDefinition = sessionFactory.getFilterDefinition(filterName); if (filterDefinition != null) { Set<String> parameterNamesSet = filterDefinition.getParameterNames(); if (parameterNamesSet != null && parameterNamesSet.contains("GROUP_NAMES")) { sessionGroupFilterNamesList.add(filterName); // remove this filter name from sessionDefinedFilterNamesList if it exists in there. if (sessionDefinedFilterNamesList.contains(filterName)) sessionDefinedFilterNamesList.remove(filterName); } } } //Enable the User Filters from CSM database for the application Iterator sessionGroupFilterNamesListIterator = sessionGroupFilterNamesList.iterator(); while (sessionGroupFilterNamesListIterator.hasNext()) { String filterName = (String) sessionGroupFilterNamesListIterator.next(); Filter filter = session.enableFilter(filterName); filter.setParameterList("GROUP_NAMES", groupNames); filter.setParameter("APPLICATION_ID", authorizationManager.getApplicationContext().getApplicationId()); } //Enable the Defined Filters available in HBM/Classes. Iterator sessionDefinedFilterNamesListIterator = sessionDefinedFilterNamesList.iterator(); while (sessionDefinedFilterNamesListIterator.hasNext()) { String filterName = (String) sessionDefinedFilterNamesListIterator.next(); Filter filter = session.enableFilter(filterName); } }
From source file:nz.co.nomadconsulting.simplepersistence.TransactionInterceptor.java
License:Apache License
private void enableFilter(final Filter f, final EntityManager entityManager) { try {//from w w w . j a v a2 s . com if (!(Boolean) expressions.evaluateValueExpression(f.getEnabledExpression())) { return; } final org.hibernate.Filter filter = getSession(entityManager).enableFilter(f.getName()); for (final Map.Entry<String, String> me : f.getParameters().entrySet()) { final Object filterValue = expressions.evaluateValueExpression(me.getValue()); if (filterValue instanceof Collection) { filter.setParameterList(me.getKey(), (Collection<?>) filterValue); } else { filter.setParameter(me.getKey(), filterValue); } } filter.validate(); } catch (final NotHibernateException nhe) { throw new RuntimeException("bob"); } }
From source file:ome.security.basic.AllGroupsSecurityFilter.java
License:Open Source License
/*** * Since we assume that the group is "-1" for this method, we have to pass * in lists of all groups as we did before group permissions (~4.2). *///w ww. j a va 2 s .com public void enable(Session sess, EventContext ec) { final Filter filter = sess.enableFilter(getName()); final int share01 = isShare(ec) ? 1 : 0; final int admin01 = ec.isCurrentUserAdmin() ? 1 : 0; filter.setParameter(is_admin, admin01); filter.setParameter(SecurityFilter.is_share, share01); // ticket:2219, not checking -1 here. filter.setParameter(SecurityFilter.current_user, ec.getCurrentUserId()); filter.setParameterList(member_of_groups, configGroup(ec, ec.getMemberOfGroupsList())); filter.setParameterList(leader_of_groups, configGroup(ec, ec.getLeaderOfGroupsList())); enableBaseFilters(sess, admin01, ec.getCurrentUserId()); }
From source file:ome.security.basic.SharingSecurityFilter.java
License:Open Source License
@Override public void enable(Session session, EventContext ec) { List<Long> imageIds = null; final Long shareId = ec.getCurrentShareId(); if (shareId != null) { final ShareData shareData = shares.get(shareId); if (shareData != null && shareData.enabled) { imageIds = shareData.objectMap.get(Image.class.getName()); }//from ww w. jav a 2s . c o m } if (CollectionUtils.isEmpty(imageIds)) { imageIds = ImmutableList.of(-1L); } final int isAdmin01 = ec.isCurrentUserAdmin() ? 1 : 0; final int isShare01 = isShare(ec) ? 1 : 0; final Filter filter = session.enableFilter(getName()); filter.setParameter("is_admin", isAdmin01); filter.setParameter("is_share", isShare01); filter.setParameterList("images", imageIds); enableBaseFilters(session, isAdmin01, ec.getCurrentUserId()); }
From source file:org.openeos.erp.core.ui.internal.ClientFilterProvider.java
License:Apache License
public void enableFilter(Session session) { Client client = (Client) sessionObjectsService .getSessionObject(ClientContextObjectContributor.CONTEXT_OBJECT_CLIENT_NAME); if (client != null) { LOG.debug("New session created, enabling filter for client selection"); Filter filter = session.enableFilter(CLIENT_FILTER_NAME); filter.setParameter("client", client.getId()); List<String> organizationList = new ArrayList<String>(); for (Organization org : ((Client) session.get(Client.class, client.getId())).getOrganizations()) { organizationList.add(org.getId()); }// ww w . j a va 2s . c o m filter = session.enableFilter(CLIENT_ORGANIZATION_FILTER_NAME); if (organizationList.size() == 0) { organizationList.add( "NULL_EXPECT_NEVER_HAS_THIS_KEY_BECAUSE_THE_STRING_HAS_MORE_LEN THAN THE PERMITTED_KEY"); } filter.setParameterList("organizationList", organizationList); } else { LOG.debug("Client filter not enabling because client is not established"); } }