Authorization, JNDI, JNI, JAAS - views on a problem.

Hiya,
It appears that JAAS only authenticates and authorizes to whomever has initiated the JVM on the server machine. I'm trying to develop an application that is web-based, and allows the user to view documents anywhere on the network (accessible from the server). Of course, the user may not have the appropriate permissions to view a document, therefore we looked at JAAS to provide some authentication/authorization for us.
This has not proved successful, as mentioned above.
This leads us to the conclusion that we may have to write a JNI native app that attempts to read/open the document on the target machine, where the document is physically located, with the username/password of the person at the client. If unsuccessful it throws an exception, otherwise it allows the user to view the document.
I'm looking for views on this. Given the above, do you believe this might be the best way for the moment? Of course, a JNI app would need to be written for each platform and it would need to be registered with JNDI for easy accessiblility from our Java Server application.
Any thoughts would be appreciated.
Yours
David.

Hi David,
It can be very well done through JNDI, Netscape Directory Server.
Here with I am giving you a sample code which was tested under Netscape Directory server 4.13, JNDI and with Iplanet Web Server.
It will ask for Login Page, and then it will invoke the corresponding HTML page. But you can make changes over there as per your request. Since you can keep all the common things in an LDAP server ie in Netscape Directory server.
Here is the steps for it.
DESCRIPTION:
I am trying to use LDAP to control access to a HTML page. I want an authentication
box to pop up, allowing the user to authenticate to the HTML page through a LDAP server.
If they succesfully authenticate, I need to check their username against a list
of valid usernames that's stored in a database, then give access to the page
based on that list. How can I implement this solution?
SOLUTION:
The best way is to use Basic Authentication solution with JNDI and LDAP server,
Netscape Directory server(for example) with a simple servlet program. Java Naming
and Directory Interface (JNDI) API is standardized, and enable to use different
directory services such as Netscape Directory server. LDAP server can be used
for storing some common data's used in the sample solution.
It can be done through a servlet to check the user and its password which is
stored in the LDAP server.
In order to demonstrate a sample solution, I will use the Netscape Directory
Server 4.13 as the LDAP server, which is loaded my own LDIF file with customized
attributes. The basic authentication algorithm will be used in this sample
solution.
The following steps are to implement this sample solution:
1. Creating our own LDAP data Interchange format (LDIF) file.
2. Loading(Import) the Ldif file in Netscape Directory Server.
3. Creation of user schema files for customized attributes.
4. Load the user schema files in the Netscape Directory Server.
5. Restart the Directory Server
6. A simple servlet program for basic authentication.
7. A sample HTML file is given last, used in servlet program.
Here are the detail description of the above steps:
STEP 1: Creating our own LDAP data Interchange format (LDIF) file:
Here is the LDIF (LDAP data Interchange format) file is a text based format used to work
on LDAP data, with both our application and end users.
Through this LDIF file, I am having an attribute "customerid: timb" for which I will
be preparing the authentication, which will have its own password
"userpassword: bakrudeen", through which it can be maintained in a common place.
Here again in the same LDIF file, other information related to the "customerid: timb"
such as common name "cn: Tim Briggs", sur name "sn: Briggs" etc are maintained.
The data in LDAP is organized in a tree, called a Directory Information tree(DIT).
Each leaf in DIT is called an entry. The first entry in DIT is called the root entry.
Here is a sample LDIF File which is used in our sample solution:-
Here the DIT is maintained in such a way data is organized in LDAP, is fairly simple. In this
sample we store all of our entries in a common root o=fedup.com, with the following branches
Customers - Customer Entries with " customer id: timb" , userpassword: bakrudeen, and other
information related to this customer is kept in a common place.
dn: uid=timb,ou=Customers,o=fedup.com
changetype:add
objectclass: customer
objectclass: inetorgperson
objectclass: organizationalPerson
objectclass: person
objectclass: top
cn: Tim Briggs
uid: timb
givenname: Tim
customerid: timb
sn: Briggs
facsimiletelephonenumber: 4101
telephonenumber: 4145
creatorsname: uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
createtimestamp: 20000501084001Z
aci: (target="ldap:///uid=timb,ou=Customers,o=fedup.com")(targetattr="*")(version 3.0; acl "unknown"; allow (all)(userdn = "ldap:///anyone");)
ou: Customers
mail:
userpassword: bakrudeen
modifiersname: uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
modifytimestamp: 20000605084001Z
STEP 2: Loading(Import) the Ldif file in Netscape Directory Server:-
Once after creating the above sample LDIF File, it should be added in Netscape Directory Server.
It should be imported in order to add the neccessary atributes in the Netscape Directory server,
so that we can make use of the Common data.
Steps for Importing the LDIF file in the Directory Server:-
1) Create an instance of the Directory Server.
2) Bind it to the different port with different organizational unit
(Here in this program, it is 1124).
3) Press the Configuration from the menu.
4) Then select import from the Console menu.
5) Choose the LDIF file you are going to import.
6) There also you have to provide a file for rejected entries, ie it will list all the entries
which is not added while loading.
STEP 3: Creation of our own USER SCHEMA Files:-
It is necessary for adding the attributes which are not defined in the
Netscape directory server. In the above, customerid which is defined in ldif
file is not existing in the directory server.
Here is the Schema file for attributes:(ie for defining for eg customer id).
The name of the file is slapd.user_at.conf:-
attribute customerid customerid-oid cis single
attribute packageid packageid-oid cis single
attribute receivedate receivedate-oid cis single
attribute shipdate shipdate-oid cis single
attribute shipperid shipperid-oid dn single
attribute receiveid receiveid-oid dn single
#Java Attributes
# Schema for storing java objects and java object references
attribute javaClassName 1.3.6.1.4.1.42.2.27.4.1.1 ces single
attribute javaCodebase 1.3.6.1.4.1.42.2.27.4.1.6 ces
attribute javaSerializedData 1.3.6.1.4.1.42.2.27.4.1.7 bin single
attribute javaRemoteLocation 1.3.6.1.4.1.42.2.27.4.1.8 ces single
attribute javaFactory 1.3.6.1.4.1.42.2.27.4.1.4 ces single
attribute javaReferenceAddress 1.3.6.1.4.1.42.2.27.4.1.3 ces
Here is Schema file for your own object classes:-
The name of the file is Slapd.user_oc.conf:-
In the similar way as above there are no "customer" class in the object classes
defined in the LDAP, so we will have to create our own "customer" Object class.
Also it extends inetOrgPerson to add some new attributes such as "customerid".
The object class of an entry specifies what attributes are required and what
attributes are allowed in a particular entry.
Also for eg, Package classes in the object class is created.
Here is the sample file for creating the above:-
objectclass package
oid package-oid
superior top
requires
packageid,
receiveid,
shipdate,
shipperid
allows
description,
ou,
receivedate
objectclass customer
oid customer-oid
superior inetorgperson
requires
customerid
allows
c
#JAVA Schema
# Schema for storing java objects and java object references
objectclass javaContainer
oid 1.3.6.1.4.1.42.2.27.4.2.1
superior top
requires
cn
objectclass javaObject
oid 1.3.6.1.4.1.42.2.27.4.2.4
superior top
requires
javaClassName
allows
javaCodebase
objectclass javaSerializedObject
oid 1.3.6.1.4.1.42.2.27.4.2.5
superior javaObject
requires
javaSerializedData
objectclass javaRemoteObject
oid 1.3.6.1.4.1.42.2.27.4.2.6
superior javaObject
requires
javaRemoteLocation
objectclass javaNamingReference
oid 1.3.6.1.4.1.42.2.27.4.2.7
superior javaObject
requires
javaReferenceAddress,
javaFactory
STEP 4: Loading the USER SCHEMA files in Directory Server:-
All the attributes created above should be added to the corresponding directory server,
in order to make it as a common attribute.
Steps for adding the User Schema files to the Directory Server:-
1. Copy the above user schema files to the appropriate instance of Netscape Directory Server
created above so that the existing LDIF file which is used in the Netscape directory
server is not appended or overwritten.
2. For eg, put it in "NetscapeServer/slapd-HostName/config" to replace the empty
files "slapd.user_at.conf" and "slapd.user_oc.conf" by default.
3. Then restart the Directory Server.
STEP 5: Simple Servlet Program for BASIC AUTHENTICATION.
Here is the simple servlet program for Basic Authentication:-
Here the way the LDAP authentication works is by attempting to the server with a
DN and a password. No user in their right mind will remember their DN, so we use
some other attribute such as user-id. Then we search in the LDAP server to find
an entry that contains the attribute. Here we are maintaining SUBTREE_SCOPE using
JNDI, which starts its search starting from the base entry, and searches
everything below it including the base entry. Also I am maintaining Global
variables for LDAP setting.
// Importing the necessary Packages
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.naming.directory.*;
public class AuthServ extends HttpServlet {
// Here are our global variables of our LDAP Settings.
public static String MY_CUSTOMER_BASE = "ou=Customers,o=fedup.com";
public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
public static int MY_PORT = 1124;
public static String MY_HOST = "ldap://sundts1.india.sun.com:" + MY_PORT;
public static String MY_MGR = "cn=Directory Manager";
public static String MY_PWD = "password";
public static String MY_SEARCHBASE = "o=fedup.com";
Hashtable env = new Hashtable();
// Using the Get Method of Servlet
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
// To Check to See if there is any data in the "Authorization" Http header from the browser.
// If not it will prompt for username and password.
String auth = req.getHeader("Authorization");
// Do we allow the user
if (!allowedUser(auth) ) {
// Not Allowed, so report unauthorized
res.setStatus(res.SC_UNAUTHORIZED);
res.setHeader("WWW-Authenticate", "BASIC realm=\"users\"");
// User is allowed in
else
// Using SSI to include and display the content of a Simple HTML Page
RequestDispatcher rd= this.getServletContext().getRequestDispatcher("/auth.html");
rd.include(req,res);
// This method checks to see whether the user exist in the LDAP database.
protected boolean allowedUser(String auth) throws IOException {
Hashtable env = new Hashtable();
boolean status = false;
try {
// No Authorization
if (auth == null) return false;
// Basic Authentication is Handled, Other possibilities are MD5 hash or SSL Certificates.
if (!auth.toUpperCase().startsWith("BASIC ")) {
return false; //only do BASIC
// Get encoded user and password, comes after BASIC
String userpassEncoded = auth.substring(6);
// Decode it, using any base 64 decoder
sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder();
String userpassDecoded = new String(dec.decodeBuffer(userpassEncoded));
StringTokenizer st = new StringTokenizer(userpassDecoded,":");
String customerid = st.nextToken();
String pwd = st.nextToken();
Please Note:
LDAP Authentication works by attempting to bind to the server with a DN and a password.
No user will remember their DN so we use some other attribute such as user-id.
Then we search in the LDAP server to find an entry in the LDAP server to find an entry
that contains the attribute.
For a Secure System, we should use an attribute that will be unique per entry such as
uid, in our case the "customerid" attribute.
// Prepare for context
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
// Get a reference to a directory context
DirContext ctx = new InitialDirContext(env);
// Specify the scope of the search
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Perform the actual search
// We give it a searchbase, a filter and the constraints
// containing the scope of the search
NamingEnumeration results =
ctx.search(MY_CUSTOMER_BASE, "(customerid=" + customerid + ")", constraints);
String dn = null;
If it does not throw an exception,
then it is considered to be an Successful Authentication
// Now step through the search results
while (results != null && results.hasMore()) {
SearchResult sr = (SearchResult) results.next();
dn = sr.getName() + "," + MY_CUSTOMER_BASE;
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, dn);
env.put(Context.SECURITY_CREDENTIALS, pwd);
try {
DirContext ctx2 = new InitialDirContext(env);
status = true;
} catch (AuthenticationException e) {
log(e.toString());
} catch (NamingException x) {
log(x.toString());
return status;
STEP 6: Simple HTML file used in Servlet Program:-
Here is the Simple HTML File we are including in RequestDispatcher of the above program:-
<html>
<head>
<title> Authorisation</title>
</head>
<body>
<h1> Your Authorisation is Successful </h1>
</body>
</html>
I hope this will help you.
Thanks
Bakrudeen
Technical Support Engineer
Sun MicroSystems Inc, India

Similar Messages

  • Authorization on Table Maintenance View

    HI,
         How can I add the authorization on table maintenance view?
    Saurabh

    Hi Joshi,
    When ever u get the table maintanace view creation screen in that select &NC% value.
    Reply for queries.Shall post the data.
    Regards,
    Kumar.

  • I try try to authorize my first itunes on my computer but a message called that I am authorized more than 5 computer but i dont authorize any computer yet what is my problem?

    I try try to authorize my first itunes on my computer but a message called that I am authorized more than 5 computer but i dont authorize any computer yet what is my problem?

    Hello I BLACK,
    Thanks for using Apple Support Communities.
    If you have never authorized any other computers, this computer might be using multiple iTunes Store authorizations.  Please follow the instructions in the following article to deauthorize your computer.
    One computer using multiple iTunes Store authorizations
    http://support.apple.com/kb/HT1206
    Take care,
    Alex H.

  • Issue :  Child view object refresh problem,

    Hi ,
    Child view object refresh problem,
    Detail expaination of problem with DEPT and Emp table:
    I have two pages first.jspx and secound.jspx
    In the First page we are showing one department and All Employee blongs to that department. Employees are shown in table format.
    and i have duplicate button in table--> this will create a duplication record of selected employee by calling application module
    and the control moves to sencound page to show the newly created Employee details.
    From secound form am returning back with some action button to previous page to the same dept , The newly created records are not showing in the table [but the database has newly crated].
    How do i refresh the child view object ?
    Regards,
    Bogi.

    Hi Frank,
    We are creating new record from the AM with help of ADFBC.
    Would like know how to refresh UI Datacollection and AM view objects.. ? i have added vo.executeQuery in AM . But the changes not reflecting in UI,
    Thanks for the reply... am ready to give any other info required,,,

  • 11g View Criteria "Exists" Problem!!

    Jdeveloper Version 11.1.1.1.0
    Example: Model HR
    Hi everybody,
    I am using the example model HR and i would like to get a view criteria to search the departments by name and employees by the lastname. But i need to get the departments when the "firstNameEmployee" is empty even though they are no employees.
    Now i get only the departments with some employee.
    That is a example of my concrete problem. In the view must have only the attributes of department.
    and here is the query:
    ( ( ( UPPER(Departments.DEPARTMENT_NAME) LIKE UPPER('%' || :VariableNameDepartament || '%') ) OR ( :VariableNameDepartament IS NULL ) )
    AND (EXISTS(SELECT 1 FROM EMPLOYEES Employees WHERE ( ( ( UPPER(Employees.LAST_NAME) = UPPER(:VariableNameEmployee) ) OR ( :VariableNameEmployeeIS NULL ) ) )
    AND (Departments.DEPARTMENT_ID = Employees.DEPARTMENT_ID))) )
    Thanks!

    Hi,
    Using view criteria does not change anything. After the query, the view object only contains the filtered rows.
    So you can get the result the same way you did before.
    Gabriel.
    ps: I hope I got your use case correctly. If not please give us some more detail
    Edited by: Gabriel Sideras on Sep 27, 2011 3:01 PM

  • Error - No authorization for object while viewing transformations in BI 7.0

    Folks,
    In BI 7.0, In the Data flow diagram, when I had tried to click on the transformation sybmol, system is throwing an error message No authorization for object   (authorization object ) Message no. RS_EXCEPTION250
    Do I need to request for authorization to just view transformations or is this error something different ?
    Thanks

    Did  SU53 and below is theauthorization info. Does quality system usually not have access even to display/read transformations for func people ???
    Authorization check failed
      Object Class RS   Business Information Warehouse
        Authorization Obj. S_RS_DTP   Data Warehousing Workbench - Data Transfer Process
          Authorization Field ACTVT Activity
                                                                                    03
          Authorization Field RSONDTPSRC Source
                                                                                    DTP_46UAQF4V7BE5JR0I3HKLLC6D2
          Authorization Field RSONDTPTGT Target
                                                                                    ZSD_DEL
          Authorization Field RSSTDTPSRC Subtype of the Source
          Authorization Field RSSTDTPTGT Subtype of the Target
          Authorization Field RSTLDTPSRC Type of Source
                                                                                    DTPA
          Authorization Field RSTLDTPTGT Type of Target
                                                                                    ODSO
      User's Authorization Data xxxx
      Object Class RS         Business Information Warehouse
        Authorization Object S_RS_DTP   Data Warehousing Workbench - Data Transfer Process
          Authorizat. Z:GEFUNONC00 Data Warehousing Workbench - Data Transfer Process
            Profl. Z:GEFUNONC   Profile for role Z:GENAPO_FUNC_ONCALL
            Role Z:GENAPO_FUNC_ONCALL Generic APO Fucntional Oncall Role
            Authorization Field ACTVT Activity
                                                                                    03, 16, 23
            Authorization Field RSONDTPSRC Source
            Authorization Field RSONDTPTGT Target
            Authorization Field RSSTDTPSRC Subtype of the Source
                                                                                    ATTR, HIER, TEXT
            Authorization Field RSSTDTPTGT Subtype of the Target
                                                                                    ATTR, HIER, TEXT
            Authorization Field RSTLDTPSRC Type of Source
                                                                                    CUBE, IOBJ, ISET, ODSO, RSDS, TRCS
            Authorization Field RSTLDTPTGT Type of Target

  • Event Viewer reporting continuous problem with Firefox

    I had to disable McAfee Site Advisor because if enabled I could not use the back and forth arrows on the browser in some instances. In trying to track this problem down I discovered there is a continuous problem reported in Event Viewer with this information:
    The entry <C:\USERS\CINDY\APPDATA\LOCAL\MOZILLA\FIREFOX\PROFILES\PV0GC0WS.DEFAULT\CACHE\_CACHE_003_> in the hash map cannot be updated.
    Context: Application, SystemIndex Catalog
    Details:
    A device attached to the system is not functioning. (0x8007001f)
    Can anyone please help with this?

    The error could be something trivial, it will depend really on what problems you are having, and I note you have made a few other posts.
    * One article you may find useful is [[Basic troubleshooting]]
    * Also see [[Safe Mode]] & [[Troubleshooting extensions and themes]]
    ** Note when using safe mode normally do not make changes in the first dialogue Window you see just click on the continue button (Unless you really do want to reset something)
    ** Also note whilst Safe Mode does disable plugins, it will not always stop all external software interacting with firefox .
    A basic principle of troubleshooting is to reduce as many unknown interactions as possible, so in the case of Firefox disabling or removing as many extras as possible.
    If you are determined to check what is in the firefox caches then use ''about.cache'' simply type it into the location bar and hit return, it is relatively user friendly and shows masses of info about what is cached, there is also an [https://addons.mozilla.org/en-us/firefox/addon/cacheviewer/ add-on cacheviewer] Even without the add-on you may be able to figure out what the item is, and whether or not it is updating.
    I do not even use Vista, but presumably an event log entry may not necessarily relate directly to Firefox use.
    ''"in the hash map cannot be updated.
    Context: Application, SystemIndex Catalog "''
    I would hazard a guess that the above message may relate to disk indexing; if so it will possibly have nil impact upon Firefox operation.
    I do recall problems being mentioned on this forum about Site Advisor and Firefox, and note some versions are on the [https://www.mozilla.com/en-US/blocklist/ blocklist] for Firefox 4. If you have problems with SiteAdvisor it would be worth ensuring you have the very latest compatible release of Site Advisor.

  • ADF Map Viewer Themes Rendering Problem

    Hi,
    Im presently working on ADF Map Viewer. Im facing the below mentioned issue. Can any one has come across this???
    Im building the Themes using Map Builder.
    I have 3 thems, which i combined together & created as a Base Map using Map Builder.
    While adding the themes, i also set the theme mode as "Mapviewer_native". The themes are Area Theme, Region Theme & Building Block Theme.
    For the first theme, i did not specify any minimum scale & maximum scale to make sure that this theme needs to be rendered initially.
    For the second theme, which supposed to be rendered after doing certain zoom in...for this theme i have set the Max & Min scale as Max 3 || Min 8.
    For the third theme i have added the range from 3 to 0.
    Im able to test this fine with Map Builder...On making zoom in at certain levels the second theme is getting rendered..and after doing some more zoom in the third theme is getting rendered.
    Till this everything fine... Here the problem came....
    I used <dvt:map component & assigned the above created Map as Base Map... But here im not able to see the second theme...Initially its showing the Area Map & On selecting the Zoom In ...its directly going to theme 3.
    Can you please suggest me some thing by using i can get this second theme as well....
    Looking forward to hear from you
    Regards,
    Konjeti

    Hi,
    not that I am aware of.
    Frank

  • PDF View Search Find Problems

    FInd/search function in PDF view application still not fixed in WebOS 1.4.  In PDF View application:
    1) The field where you enter something to search/find is hidden by the name of the PDF document title.  It doesn't go away even when you start typing, so you can't see what you are typing.
    2) The count of the number of matches found looks greyed out and very hard to read.
    3) The up/down arrows in the top right next to the count of matches does not work.  Shouldn't they take you to each consecutive match?
    4) Why doesn't it position you to page in the document where the first match is found?   It shows the page number at the bottom, but since the up/down arrows at the top right don't work, I have to click the forward page arrow and then the backward page arrow to jump to the page containing the first match.

    Post Author: [email protected]
    CA Forum: Administration
    I don't know how to point Adobe to a certain printer, but the printer we are using does have that paper tray size.
    So just to add some more clarification, its BO XI R2 and:
    If I run the report in Deski, then save it as a PDF on my desktop, it is formatted properly, no problems at all, and no need to point Adobe to any printers.If I view the same report in Infoview it's split into two pages unless I chose "View -> Draft Mode". If I chose "Page Mode" it's split on two pages, if I chose "PDF Mode" (for printing) it's split into two pages and that is a problem....

  • Flash image viewer, picture scale problem in CS3

    Please someone help me. I have built a website 3 years ago, and I still have this problem. In CS3 I added a flash image viewer (slideshow.swf) as a slideshow to show gardens we have made. When you first visit the site and look at the pictures (wich are bigger than the viewer window because of picture quality issues) they don`t shrink to fit into the viewer window, you only end up seeing a fraction of them. But when they download and you go back to see them again a second later, they become the right size. It also swiches to the right size when the loop play gets back to the first pic again.
    In the flash element properties I tried the different scale settings, and looked at other settings too but I couldn`t make it work.
    I think making the viewer window as large as the pictures, would look odd. Maybe buying on other slideshow program to insert into dreamweaver would work.
    If you would like to see the site its: tsugagardens.com , than look in the photo gallery and after the pics download go back with the back button and see the difference in the pics.
    Thank you for your efforts,
    Tibor

    function(){return A.apply(null,[this].concat($A(arguments)))}
    serestibi wrote:
    Please someone help me. I have built a website 3 years ago, and I still have this problem. In CS3 I added a flash image viewer (slideshow.swf) as a slideshow to show gardens we have made. When you first visit the site and look at the pictures (wich are bigger than the viewer window because of picture quality issues) they don`t shrink to fit into the viewer window, you only end up seeing a fraction of them. But when they download and you go back to see them again a second later, they become the right size. It also swiches to the right size when the loop play gets back to the first pic again.
    In the flash element properties I tried the different scale settings, and looked at other settings too but I couldn`t make it work.
    I think making the viewer window as large as the pictures, would look odd. Maybe buying on other slideshow program to insert into dreamweaver would work.
    If you would like to see the site its: tsugagardens.com , than look in the photo gallery and after the pics download go back with the back button and see the difference in the pics.
    Thank you for your efforts,
    Tibor
    Here is the code for the image viewer

  • Crystal Report Viewer and border problems

    Post Author: catalinandrei00
    CA Forum: Deployment
    Hello there,    I've created an report and I've added borders for the fields in the report (Right click on the field > Format Object -> Border -> Choose for the 4 margins the line-style single). The report is correctly exported to different formats (.doc, .pdf, .xls). My problem is that when I display the report in an ASP.NET 2.0 page using an Crystal Report Viewer the report is correctly shown but the borders don't appear.My question is why the borders don't appear in the Crystal Report Viewer? Thanks for helping for solving this issue. It's very important.Catalin  

    Hello catalinandrei00
    I have the exact opposite problem as yours.
    I am using integrated crystal reports with Visual Studio 2005 and I have put a Crystal Viewer on a web page.
    First I also had the same problem like yours and then in one of the post i found a solution for this. Hope it will work for you too. here it is :-
    Just remove the following line from your aspx page.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    Now regarding my problem. My problems is that now i can view the borders and everything correctly in the viewer but when i try to print the report it automatically exports to Adobe first and BAM!!! the format disappears. Though if i export to word Doc format it export perfectly fine with all the borders and everything
    I hope some other reader will come to my rescue...pls HELP.

  • JAAS + VPD with BC4J problem

    Following the instructions in http://otn.oracle.com/products/jdev/howtos/bc4j/bc4jvpdjaas.html, we set up an vpd+jazn-data.xml application according to which users see portions of the database.
    In development with only one JAAS user created, this appeared to work properly.
    In testing with several JAAS users created, we have discovered that the application username, as known to the Application Module, will drift in and out of sync with the setting in the database context. In other words
    ApplicationModuleImpl.getUserPrincipalName()
    remains correct, but
    "select context_pkg.get_ctx_appuser from dual" in BC4J/JSP
    varies.
    Or, an example, one login as user1 sees user2's data, but not the data he is supposed to see.
    Please help!!!!

    Hi,
    Is your client app a JSP? How do you start each session? Do you have settings on SessionCookie state? Could you create a small test case? A test case will greatly help me diagnose the problem. BTW, the application user context get set/reset only after new transaction since it is in afterConnect().
    Thanks,
    Yvonne

  • Has anyone managed to get Authorization working with JAAS from CusLoginMod?

    Hi everybody,
    I am on a standalone oc4j 10.1.3.1.0
    I want to be able to access a private resource using form based authentication
    and I would like to use JAAS from with a custom login module.
    The authentication part works just fine but the authorization doesn't seem to happen.
    Both login() and commit() from my LoginModule are called and after authentication takes place, the subject is populated with the right Principals, in my case "testers".
    This Subject then it should be matched against the <security-role> defined in my application's web.xml
    This is the part from my application's web.xml which holds the security information.
    <security-role>
    <description>Online User</description>
    <role-name>testers</role-name>
    </security-role>
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>access to the private application</web-resource-name>
    <url-pattern>/faces/user/*</url-pattern>
    </web-resource-collection>
    <!-- authorization -->
    <auth-constraint>
    <role-name>testers</role-name>
    </auth-constraint>
    <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    <login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
    <form-login-page>protected.htm</form-login-page>
    <form-error-page>error.jspx</form-error-page>
    </form-login-config>
    </login-config>
    Has anyone faced this scenario before?
    Any advices much appreciated
    thank you.

    I can't see what am I missing if I'm missing something.
    This is my orion-application.xml
    <orion-application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-application-10_0.xsd">
    <jazn provider="XML" jaas-mode="doAsPrivileged" location="">
    <property name="role.mapping.dynamic" value="true"></property>
    <property name="custom.loginmodule.provider" value="true"></property>
    </jazn>
    <jazn-loginconfig>
    <application>
    <name>JAAS</name>
    <login-modules>
    <login-module>
    <class>jaas.JAASLoginModule</class>
    <!-- <class>jaas.SampleLoginModule</class> -->
    <control-flag>required</control-flag>
    <options>
    <option>
    <name>debug</name>
    <value>true</value>
    </option>
    <option>
    <name>log_level</name>
    <value>ALL</value>
    </option>
    </options>
    </login-module>
    </login-modules>
    </application>
    </jazn-loginconfig>
    </orion-application>

  • Color flicker? Florescent lights? Viewer to Canvas problem?

    Hello everyone,
    I shot on a Sony HZ5u,
    in Smooth Slow Record,
    HDV1080i, 60i
    inside a semi truck bay under fluorescent lighting (I think).
    In both the Viewer and Canvas there is a frame to frame shift in White Balance hue
    from cyan to magenta.
    The issue does not occur outside the bay, so I'm guessing it's due to lighting.
    Now my problem is that the visibility of this is more noticeable in the Canvas
    where there is an extreme flicker. It hurts my eyes. It is very rapid.
    *Is there a reason why it gets worse in the canvas? How can I fix this?
    It is not my monitors, I moved both windows over to each monitor and it's consistent.
    And for anyone who knows, why does this camera, and other cameras, react so drastically to normal fluorescent lighting?
    I have had earlier issues where the color did not flicker but rolled, like a tv static roll, slowly and constantly.
    Thank you for ANY help!
    Landon S.

    No it's the other way around.
    If you shot at 60i/30fps with today's cameras you may not have a problem, even with the old magnetic ballasts with a florescent bulb you're really not at odds with the AC cycle at 30fps. It's when you shot slo-mo and change the frame rate to something that's not divisible into 60Hz that you get in trouble.
    Of course all that changes if the the AC current isn't stable.
    There are little tricks like not using auto white balance, and using proper shutter speeds. I'm not much of a shooter, I've just come across the problem before and understand the cause. I produced a film shoot in a newsroom once where we had to re-light the whole room and bag the florescent lights.
    We ran tests, it's smart to run tests. If you shoot in that place again I would bring in your own lights.

  • Authorization Control for Quick Viewer

    Hi,
    I have create a quick viewer using table join and I notice that the authorization when I execute the program is only at table authorization level.
    Question: Is quick viewer authorization be down to the field level. For example, if I join MKPF and MSEG and RESB to view stock movement with reservation information. Can quick viewer check the plant authorization object (M_MSEG_WMB) to make sure that the person execute the report is only able to view his/her own data?
    Regards,
    Norman

    It's not an ABAP question. You might want to ask your Basis/Security consultant or move the question to the corresponding forum.

Maybe you are looking for