2015-06-11 80 views
0

我試圖實施RowLevelSecurity,限制根據存儲的管理員用戶。我跟隨此URL **執行RowLevelSecurity時出現異常

http://www.broadleafcommerce.com/docs/core/current/broadleaf-concepts/admin/admin-row-level-security

** 我不得不重寫這些方法: addFetchRestrictions()addFetchRestrictionsRoot()

所以,當我在管理應用程序登錄,我可以訪問所有的環節,除了產品的鏈接時,我點擊產品鏈接,然後我得到ClassCastException這樣的:

「java.lang.ClassCastException: org.broadleafcommerce.openadmin.server.security.domain.AdminUserImpl 不能轉換爲com.iwn.admin.user.MyAdminUser」

當我調試我的應用程序去了解,我在下面得到異常行:

Store adminStore = ((MyAdminuser) currentUser).getStore(); 

任何人都可以幫助我,如何解決這個問題,謝謝。

回答

0

如果您已將AdminuserImpl擴展到您的自定義MyAdminuser請確保您已按照http://www.broadleafcommerce.com/docs/core/current/tutorials/core-tutorials/extending-entities-tutorial中的所有說明操作。

如果你已經這樣做了,但依然依賴於初始數據導入,那麼你的數據可能是錯誤的。假設您有一個名爲MY_ADMIN_USER(映射到MyAdminuser Hibernate對象)的表,請確保您在該表中具有BLC_ADMIN_USER中所有條目的條目。否則,休眠只能給你回AdminUserImpl的實例,而不是你的擴展MyAdminuser

一個簡單的方法,以確保這是與該SQL查詢:

INSERT INTO MY_ADMIN_USER (ADMIN_USER_ID) (SELECT blc.ADMIN_USER_ID FROM BLC_ADMIN_USER AS blc);

相關問題