I am getting the error
INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, insufficient access rights on cross-reference id: 
Scenario is, I am inserting an
Opportunity and then
Opportunity Line Item from a Visualforce page using controller. When I am doing this I am logged in as user whose profile license is "Authenticated Website".
Strange thing is, when on another org logged in as user whose user profile license is
Customer Portal Manager the same code work fine. Both orgs have Opportunity OWD "Read Only" and Opportunity line item "Controlled By Parent".
To resolve this problem I've used "without sharing" on class which executes the insertion code, and it works fine from "Authenticated Website" user. As this may be a security issue when we try to list the app on AppExchange, is there any other way to resolve this problem?