Search Results

Search found 33965 results on 1359 pages for 'oracle upk content'.

Page 578/1359 | < Previous Page | 574 575 576 577 578 579 580 581 582 583 584 585  | Next Page >

  • Why does this IF statement fail?

    - by ChosenOne
    If variable path is empty, and editor.Text is not empty, the SaveFileDialog should be displayed. Now, why on earth is this damn thing failing??? I have tried this with many different variations of code with the same result: FAIL: if(path.Length >= 1) // path contains a path. Save changes instead of creating NEW file. { File.WriteAllText(path, content); } else { // no path defined. Create new file and write to it. using(SaveFileDialog saver = new SaveFileDialog()) { if(saver.ShowDialog() == DialogButtons.OK) { File.WriteAllText(saver.Filename, content); } } } At the top of code file I have: path = String.Empty; So why the heck it this failing every single time, even after trying all of the below variations? if(path.Length > 1) // path contains a path. Save changes instead of creating NEW file. { File.WriteAllText(path, content); } else { // no path defined. Create new file and write to it. using(SaveFileDialog saver = new SaveFileDialog()) { if(saver.ShowDialog() == DialogButtons.OK) { File.WriteAllText(saver.Filename, content); } } } and if(String.IsNullOrEmpty(path)) // path contains a path. Save changes instead of creating NEW file. { File.WriteAllText(path, content); } else { // no path defined. Create new file and write to it. using(SaveFileDialog saver = new SaveFileDialog()) { if(saver.ShowDialog() == DialogButtons.OK) { File.WriteAllText(saver.Filename, content); } } } and if(String.IsNullOrWhiteSpace(path)) // path contains a path. Save changes instead of creating NEW file. { File.WriteAllText(path, content); } else { // no path defined. Create new file and write to it. using(SaveFileDialog saver = new SaveFileDialog()) { if(saver.ShowDialog() == DialogButtons.OK) { File.WriteAllText(saver.Filename, content); } } } This is making me very angry. How could this fail? Setting a break point reveals that path is definitely null/"".

    Read the article

  • Adding <span> tags to all text nodes between custom self closing tags.

    - by Rachel
    I have a pair of custom self closing tags s1 and s2 defined in namespace x in my xhtml. For each tag pair s1, s2 having the same id, I want to add span tags to all the text nodes between them. Each s1, s2 tag pair have a unique id. The s1 tag has an attribute 'styleName' which needs to be copied as the class name for the span tags populated for the s1,s2 pair. Within a s1, s2 tag pair, other s1, s2 tags can occur. It is the id attribute of the tags s1 and s2 that help us to find the postion from where we need to start populating the span(for text nodes alone) and the end where we need to stop. In case of common text nodes that is part of the multiple s1, s2 pairs then the span tags needs to be opened and closed appropirately as shown in the sample below. I am not specific with the format of the id populated for the span tag. As long as it is unique it is fine. Can we achieve this kind of a solution using XSL. I am looking for a XSL based solution for the same. I am using Saxon java processor for XSL. I am trying to achieve this using XSL 2.0. Please share your ideas on this. EDIT: I have edited my sample input and output to make my question more clear. Sample input: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="http://sample.org"> <head> <title>This is my title</title> </head> <body> <h1 align="center">This <x:s1 id="1" styleName="name_1"/>is my <x:s2 id="1" />heading</h1> <p> Sample content <x:s1 id="2" styleName="name_2"/> Some text here. </p> <p> Here you <x:s2 id="2" />go. </p> <p> <x:s1 id="3" styleName="name_3"/>This <x:s1 id="4" styleName="name_4"/>is just a simple text <x:s2 id="4" />Some text here.<x:s2 id="3" /> Some content here. </p> <p> Use this <x:s1 id="5" styleName="name_5"/>space. </p> <p> Indroducing <x:s1 id="6" styleName="name_6"/> more information. </p> <p> Can add some <x:s2 id="6" />more content here. </p> <p> Sample content <x:s2 id="5" />Some text here. Some content here. </p> <p> <x:s1 id="7" styleName="name_7"/>This is a complex data. <x:s1 id="8" styleName="name_8"/>Framing a long sentence to <x:s2 id="7" />accomodate all possible <x:s2 id="8" />scenarios. </p> <p> <x:s1 id="9" styleName="name_9"/>More data can be <x:s1 id="10" styleName="name_10"/>added here. </p> <p> Trying to include here. </p> <p> Modifying <x:s2 id="9" />content <x:s2 id="10" />here. </p> </body> </html> Sample output: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="http://sample.org"> <head> <title>This is my title</title> </head> <body> <h1 align="center">This <span id="1_1" class="name_1">is my </span>heading</h1> <p> Sample content <span id="2_1" class="name_2"> Some text here.</span> </p> <p> <span id="2_2" class="name_2">Here you </span>go. </p> <p> <span id="3_1" class="name_3">This <span id="4_1" class="name_4">is just a simple text </span>Some text here.</span> Some content here. </p> <p> Use this <span id="5_1" class="name_5">space.</span> </p> <p> <span id="5_2" class="name_5">Indroducing <span id="6_1" class="name_6"> more information.</span></span> </p> <p> <span id="5_3" class="name_5"><span id="6_2" class="name_6">Can add some </span>more content here.</span> </p> <p> <span id="5_4" class="name_5">Sample content </span>Some text here. Some content here. </p> <p> <span id="7_1" class="name_7">This is a complex data.</span> <span id="8_1" class="name_8"><span id="7_2" class="name_7">Framing a long sentence to </span></span><span id="8_2" class="name_8">accomodate all possible </span>scenarios. </p> <p> <span id="9_1" class="name_9">More data can be <span><span id="10_1" class="name_10"><span id="9_2" class="name_9">added here.</span></span> </p> <p> <span id=10_2 class="name_10"><span id="9_3" class="name_9">Trying to include here.</span></span> </p> <p> <span id=10_3 class="name_10"><span id="9_4" class="name_9">Modifying</span></span><span id="10_4" class="name_10">content </span>here. </p> </body> </html> Thanks.

    Read the article

  • Adding <span> tags to all text nodes between custom self closing tags.

    - by Rachel
    I have a pair of custom self closing tags s1 and s2 defined in namespace x in my xhtml. For each tag pair s1, s2 having the same id, I want to add span tags to all the text nodes between them. Each s1, s2 tag pair have a unique id. The s1 tag has an attribute 'styleName' which needs to be copied as the class name for the span tags populated for the s1,s2 pair. Within a s1, s2 tag pair, other s1, s2 tags can occur. It is the id attribute of the tags s1 and s2 that help us to find the postion from where we need to start populating the span(for text nodes alone) and the end where we need to stop. In case of common text nodes that is part of the multiple s1, s2 pairs then the span tags needs to be opened and closed appropirately as shown in the sample below. I am not specific with the format of the id populated for the span tag. Along as it is unique it is fine. Can we achive this kind of a solution using XSL. I am using Saxon processor. Sample input: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="http://sample.org"> <head> <title>This is my title</title> </head> <body> <h1 align="center">This <x:s1 id="1" styleName="name_1"/>is my <x:s2 id="1" />heading</h1> <p> Sample content <x:s1 id="2" styleName="name_2"/> Some text here. </p> <p> Here you <x:s2 id="2" />go. </p> <p> <x:s1 id="3" styleName="name_3"/>This <x:s1 id="4" styleName="name_4"/>is just a simple text <x:s2 id="4" />Some text here.<x:s2 id="3" /> Some content here. </p> <p> Use this <x:s1 id="5" styleName="name_5"/>space. </p> <p> Indroducing <x:s1 id="6" styleName="name_6"/> more information. </p> <p> Can add some <x:s2 id="6" />more content here. </p> <p> Sample content <x:s2 id="5" />Some text here. Some content here. </p> <p> <x:s1 id="7" styleName="name_7"/>This is a complex data. <x:s1 id="8" styleName="name_8"/>Framing a long sentence to <x:s2 id="7" />accomodate all possible <x:s2 id="8" />scenarios. </p> <p> <x:s1 id="9" styleName="name_9"/>More data can be <x:s1 id="10" styleName="name_10"/>added here. </p> <p> Trying to include here. </p> <p> Modifying <x:s2 id="9" />content <x:s2 id="10" />here. </p> </body> </html> Sample output: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="http://sample.org"> <head> <title>This is my title</title> </head> <body> <h1 align="center">This <span id="1_1" class="name_1">is my </span>heading</h1> <p> Sample content <span id="2_1" class="name_2"> Some text here.</span> </p> <p> <span id="2_2" class="name_2">Here you </span>go. </p> <p> <span id="3_1" class="name_3">This <span id="4_1" class="name_4">is just a simple text </span>Some text here.</span> Some content here. </p> <p> Use this <span id="5_1" class="name_5">space.</span> </p> <p> <span id="5_2" class="name_5">Indroducing <span id="6_1" class="name_6"> more information.</span></span> </p> <p> <span id="5_3" class="name_5"><span id="6_2" class="name_6">Can add some </span>more content here.</span> </p> <p> <span id="5_4" class="name_5">Sample content </span>Some text here. Some content here. </p> <p> <span id="7_1" class="name_7">This is a complex data.</span> <span id="8_1" class="name_8"><span id="7_2" class="name_7">Framing a long sentence to </span></span><span id="8_2" class="name_8">accomodate all possible </span>scenarios. </p> <p> <span id="9_1" class="name_9">More data can be <span><span id="10_1" class="name_10"><span id="9_2" class="name_9">added here.</span></span> </p> <p> <span id=10_2 class="name_10"><span id="9_3" class="name_9">Trying to include here.</span></span> </p> <p> <span id=10_3 class="name_10"><span id="9_4" class="name_9">Modifying</span></span><span id="10_4" class="name_10">content </span>here. </p> </body> </html> Thanks.

    Read the article

  • Invalidating the HTTP Cache on read only front servers

    - by Microserf
    We have a CMS system and in the production mode a number of servers only have read-only access to the content (with a few exceptions) and the editors for the site work on the content on servers behind it (which are not available to the public). We're caching the content quite a long time on the front servers, but sometimes we want the content the editors publish to be available for visitors instantly. What would the best way be to invalidate the cache in this situation, should we trigger it from our code?

    Read the article

  • Binding to two values

    - by developer
    Hi All, Is it possible to bind a label content to two values. For eg, I want a single label whose content is displayed as below, UserName= Firstname, Lastname where Firstname and Lastname, both are values from database. If I would be using to labels I would bind as Content={Binding Firstname} for one and Content={Binding Lastname} for another. But I want a single label to display both. Is it possible?

    Read the article

  • AngularJS: download pdf file from the server

    - by Bartosz Bialecki
    I want to download a pdf file from the web server using $http. I use this code which works great, my file only is save as a html file, but when I open it it is opened as pdf but in the browser. I tested it on Chrome 36, Firefox 31 and Opera 23. This is my angularjs code (based on this code): UserService.downloadInvoice(hash).success(function (data, status, headers) { var filename, octetStreamMime = "application/octet-stream", contentType; // Get the headers headers = headers(); if (!filename) { filename = headers["x-filename"] || 'invoice.pdf'; } // Determine the content type from the header or default to "application/octet-stream" contentType = headers["content-type"] || octetStreamMime; if (navigator.msSaveBlob) { var blob = new Blob([data], { type: contentType }); navigator.msSaveBlob(blob, filename); } else { var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL; if (urlCreator) { // Try to use a download link var link = document.createElement("a"); if ("download" in link) { // Prepare a blob URL var blob = new Blob([data], { type: contentType }); var url = urlCreator.createObjectURL(blob); $window.saveAs(blob, filename); return; link.setAttribute("href", url); link.setAttribute("download", filename); // Simulate clicking the download link var event = document.createEvent('MouseEvents'); event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); link.dispatchEvent(event); } else { // Prepare a blob URL // Use application/octet-stream when using window.location to force download var blob = new Blob([data], { type: octetStreamMime }); var url = urlCreator.createObjectURL(blob); $window.location = url; } } } }).error(function (response) { $log.debug(response); }); On my server I use Laravel and this is my response: $headers = array( 'Content-Type' => $contentType, 'Content-Length' => strlen($data), 'Content-Disposition' => $contentDisposition ); return Response::make($data, 200, $headers); where $contentType is application/pdf and $contentDisposition is attachment; filename=" . basename($fileName) . '"' $filename - e.g. 59005-57123123.PDF My response headers: Cache-Control:no-cache Connection:Keep-Alive Content-Disposition:attachment; filename="159005-57123123.PDF" Content-Length:249403 Content-Type:application/pdf Date:Mon, 25 Aug 2014 15:56:43 GMT Keep-Alive:timeout=3, max=1 What am I doing wrong?

    Read the article

  • How to shift pixels of a pixmap efficient in Qt4

    - by stanleyxu2005
    Hello, I have implemented a marquee text widget using Qt4. I painted the text content onto a pixmap first. And then paint a portion of this pixmap onto a paint device by calling painter.drawTiledPixmap(offsetX, offsetY, myPixmap) My Imagination is that, Qt will fill the whole marquee text rectangle with the content from myPixmap. Is there a ever faster way, to shift all existing content to left by 1px and than fill the newly exposed 1px wide and N-px high area with the content from myPixmap?

    Read the article

  • How to send HTML email

    - by Orsol
    Hi, i found a way to send plain text email using intent: final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/plain"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test"); But I need to send HTML formatted text. Trying to setType("text/html") doesn't work.

    Read the article

  • How to style a label with a colon

    - by Allan
    I have a details view window in WPF and a label may look like this. <Label Content="{x:Static properties:Resources.Reference}" /> So that is obtains it content from my property Resource. How can transform/format the content so it has a colon after each label item. e.g. instead of the content simply displaying Reference I want it to transform to Reference:

    Read the article

  • jQuery UI dialog + WebKit + HTML response with script

    - by Anthony Koval'
    Once again I am faced with a great problem! :) So, here is the stuff: on the client side, I have a link. By clicking on it, jQuery makes a request to the server, gets response as HTML content, then popups UI dialog with that content. Here is the code of the request-function: function preview(){ $.ajax({ url: "/api/builder/", type: "post", //dataType: "html", data: {"script_tpl": $("#widget_code").text(), "widgets": $.toJSON(mwidgets), "widx": "0"}, success: function(data){ //console.log(data) $("#previewArea").dialog({ bgiframe: true, autoOpen: false, height: 600, width: 600, modal: true, buttons: { "Cancel": function() { $(this).dialog('destroy'); } } }); //console.log(data.toString()); $('#previewArea').attr("innerHTML", data.toString()); $("#previewArea").dialog("open"); }, error: function(){ console.log("shit happens"); } }) } The response (data) is: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript">var smakly_widget_sid = 0 ,widgets = [{"cols": "2","rows": "2","div_id": "smakly_widget","wid": "0","smakly_style": "small_image",}, ] </script> <script type="text/javascript" src="/media/js/smak/smakme.js"></script> </head> <body> preview <div id="smakly_widget" style="width:560px;height:550px"> </div> </body> </html> As you see, there is a script to load: smakme.js, somehow it doesn't execute in WebKit-based browsers (I tried in Safari and Chrome), but in Firefox, Internet Explorer and Opera it works as expected! Here is that script: String.prototype.format = function(){ var pattern = /\{\d+\}/g; var args = arguments; return this.replace(pattern, function(capture){ return args[capture.match(/\d+/)]; }); } var turl = "/widget" var widgetCtrl = new(function(){ this.render_widget = function (w, content){ $("#" + w.div_id).append(content); } this.build_widgets = function(){ for (var widx in widgets){ var w = widgets[widx], iurl = '{0}?sid={1}&wid={2}&w={3}&h={4}&referer=http://ya.ru&thrash={5}'.format( turl, smakly_widget_sid, w.wid, w.cols, w.rows, Math.floor(Math.random()*1000).toString()), content = $('<iframe src="{0}" width="100%" height="100%"></iframe>'.format(iurl)); this.render_widget(w, content); } } }) $(document).ready(function(){ widgetCtrl.build_widgets(); }) Is that some security issue, or anything else?

    Read the article

  • Need help with regex blank space

    - by Gandalf StormCrow
    How to replace from regex many empty/blank characters with none? ex: <div class="someClass" id="someID"> ...bunch of elements/content <input type="button" name="myInput" id="inputID" title="myInput Title" /> ...bunch of elements/content </div> when replaced : <a class="myselector" rel="I need this value"></a><div class="someClass" id="someID">...bunch of elements/content<input type="button" name="myInput" id="inputID" title="myInput Title" />...bunch of elements/content</div>

    Read the article

  • C# How do I replace an actual asterisk character (*) in a Regex expression?

    - by fraXis
    Hello, I have a statement: I have a string such as content = "* test *" I want to search and replace it with so when I am done the string contains this: content = "(*) test (*)" My code is: content = Regex.Replace(content, "*", "(*)"); But this causes an error in C# because it thinks that the * is part of the Regular Expressions Syntax. How can I modify this code so it changes all asterisks in my string to (*) instead without causing a runtime error? Thanks.

    Read the article

  • Send parameters to Web Service Persian ?

    - by user362813
    Display information in Farsi, but I have a problem when my site for web services can be sent a character "?" are displayed. pages are saved with Unicode(utf-8 with signature)codepage 65001 and the following tags in my master page : <'html xmlns="http://www.w3.org/1999/xhtml" lang="fa" xml:lang="fa" <'meta http-equiv="Content-Type" content="text/xml; charset=utf-8" / <'meta http-equiv="Content-Language" content="fa" / <'body lang="fa"-- and in web.confing : <'globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" /

    Read the article

  • how to hide the div which is inside an iframe?

    - by user2092317
    I want to hide a div which is inside a iframe , is there any way to hide a div by its attributes example: i have a iframe i need to hide the div id="content" content in php.net <iframe src="http://php.net/" id = 'iframe'> <div id="content">...</div> </iframe> Dont know where i am doing mistake, please help me to resolve this issue function hideIt(){ document.getElementById('iframe').contentWindow.document.getElementById('content').style.display = 'none'; }

    Read the article

  • How to rewrite a path using a custom HttpHandler

    - by Micah
    I'm writing a multi-tenant app that will receive requests like http://www.tenant1.com/content/images/logo.gif and http://www.anothertenant.com/content/images/logo.gif. I want the requests to actually map to the folder location /content/tenant1/images/logo.gif and /content/anothertenant/images/logo.gif I'm using asp.net Mvc 2 so I'm sure there's probably a way to setup a route to handle this or a custom route handler? Any suggestions? Thanks!

    Read the article

  • stxxl Assertion `it != root_node_.end()' failed

    - by Fabrizio Silvestri
    I am receiving this assertion failed error when trying to insert an element in a stxxl map. The entire assertion error is the following: resCache: /usr/include/stxxl/bits/containers/btree/btree.h:470: std::pair , bool stxxl::btree::btree::insert(const value_type&) [with KeyType = e_my_key, DataType = unsigned int, CompareType = comp_type, unsigned int RawNodeSize = 16384u, unsigned int RawLeafSize = 131072u, PDAllocStrategy = stxxl::SR, stxxl::btree::btree::value_type = std::pair]: Assertion `it != root_node_.end()' failed. Aborted Any idea? Edit: Here's the code fragment void request_handler::handle_request(my_key& query, reply& rep) { c_++; strip(query.content); std::cout << "Received query " << query.content << " by thread " << boost::this_thread::get_id() << ". It is number " << c_ << "\n"; strcpy(element.first.content, query.content); element.second = c_; testcache_.insert(element); STXXL_MSG("Records in map: " << testcache_.size()); } Edit2 here's more details (I omit constants, e.g. MAX_QUERY_LEN) struct comp_type : std::binary_function<my_key, my_key, bool> { bool operator () (const my_key & a, const my_key & b) const { return strncmp(a.content, b.content, MAX_QUERY_LEN) < 0; } static my_key max_value() { return max_key; } static my_key min_value() { return min_key; } }; typedef stxxl::map<my_key, my_data, comp_type> cacheType; cacheType testcache_; request_handler::request_handler() :testcache_(NODE_CACHE_SIZE, LEAF_CACHE_SIZE) { c_ = 0; memset(max_key.content, (std::numeric_limits<unsigned char>::max)(), MAX_QUERY_LEN); memset(min_key.content, (std::numeric_limits<unsigned char>::min)(), MAX_QUERY_LEN); testcache_.enable_prefetching(); STXXL_MSG("Records in map: " << testcache_.size()); }

    Read the article

  • UML aggregation. Is necessary to put an atributte.

    - by VansFannel
    Hello. I'm making an UML class diagram and I don't know how to do this: I have a content that has a file. Both, content and file, are represented as classes. I've put an aggregation between content and file. But I don't know if is necessary to put an atribute inside content to represent file. Is necessary? Thank you.

    Read the article

  • How to send HTTP POST request and recieve response?

    - by Maxim Kachurovskiy
    For example, I need to make the following Client C - Server S conversation and get XIMSS.nonce node value: C:GET /ximsslogin/ HTTP/1.1 Host: myserver.com Content-Type: text/xml Content-Length: 42 <XIMSS><listFeatures id="list" /><XIMSS> S:HTTP/1.1 200 OK Content-Length: 231 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS><nonce>2C3E575E5498CE63574D40F18D00C873</nonce><language>german</language><response id="s"/></XIMSS>

    Read the article

  • Make a final call to the Database when user leaves website (ASPX)?

    - by Jisaak
    I have a system set up to lock certain content in a database table so only one user can edit that content at a time. Easy enough and that part is working fine. But now I'm at a road block of how to send a request to "unlock" the content. I have the stored procedure to unlock the content, but how/where would I call it when the user just closes their browser?

    Read the article

  • Native language problem in tinyMCE

    - by jasmine
    I have turkish character problem in mysql database when adding content with tinymce from admin panel. Charset is: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9"" /> It accurs when add content in text area with tynymce. How can I solve this? Thanks in advance

    Read the article

  • How to combine these three sql queries into one?

    - by lam3r4370
    How to combine these two sql queries into one? SELECT DISTINCT * FROM rss WHERE MATCH(content,title) AGAINST ('$filter') SELECT COUNT(content) FROM rss WHERE MATCH(content,title) AGAINST ('$filters') And if the result is 0 from the above query - SELECT DISTINCT * FROM rss WHERE content LIKE '%$filters%' OR title LIKE '%$filters%'; $filter .= $row['filter']; $filters = $row['filter']; $filters may be more than one keyword

    Read the article

  • Can I delay window.open()?

    - by Jisaak
    So here is my basic problem. The user clicks the save button. Use Ajax to save the content via code-behind. THEN open a new window that loads the content from the DB. I just need a way to not open the window until the content has been saved. Right now it immediately opens a new window and the content isn't all saved yet. Any ideas?

    Read the article

  • Use XQuery to Access XML in Emacs

    - by Gregory Burd
    There you are working on a multi-MB/GB/TB XML document or set of documents, you want to be able to quickly query the content but you don't want to load the XML into a full-blown XML database, the time spent setting things up is simply too expensive. Why not combine a great open source editor, Emacs, and a great XML XQuery engine, Berkeley DB XML? That is exactly what Donnie Cameron did. Give it a try.

    Read the article

  • Protecting a WebCenter app with OAM 11g - the Webcenter side

    - by Martin Deh
    Recently, there was a customer requirment to enable a WebCenter custom portal application to have multiple login-type pages and have the authentication be handle through Oracle Access Manager (OAM) As my security colleagues would tell me, this is fully supported through OAM.  Basically, all that would have to be done is to define in OAM individual resources (directories, URLS , .etc) that needed to be secured. Once that was done, OAM would handle the rest and the user would typically then be prompted by a login page, which was provided by OAM.  I am not going to discuss talking about OAM security in this blog.  In addition, my colleague Chris Johnson (ATEAM security) has already blogged his side of the story here:  http://fusionsecurity.blogspot.com/2012/06/protecting-webcenter-app-with-oam-11g.html .  What I am going to cover is what was done on the WebCenter/ADF side of things. In the test application, basically the structure of pages defined in the pages.xml are as follows:  In this screenshot, notice that "Delegated Security" has been selected, and of the absence for the anonymous-role for the "secured" page (A - B is the same)  This essentially in the WebCenter world means that each of these pages are protected, and only accessible by those define by the applications "role".  For more information on how WebCenter handles security, which by the way extends from ADF security, please refer to the documentation.  The (default) navigation model was configured.  You can see that with this set up, a user will be able to view the "links", where the links define navigation to the respective page:   Note from this dialog, you could also set some security on each link via the "visible" property.  However, the recommended best practice is to set the permissions through the page hierarchy (pages.xml).  Now based on this set up, the expected behavior is that I could only see the link for secured A page only if I was already authenticated (logged in).  But, this is not the use case of the requirement, since any user (anonymous) should be able to view (and click on the link).  So how is this accomplished?  There is now a patch that enables this.  In addition, the portal application's web.xml will need an additional context parameter: <context-param>     <param-name>oracle.webcenter.navigationframework.SECURITY_LEVEL</param-name>     <param-value>public</param-value>  </context-param>  As Chris mentions in his part of the blog, the code that is responsible for displaying the "links" is based upon the retrieval of the navigation model "node" prettyURL.  The prettyURL is a generated URL that also includes the adf.ctrl-state token, which is very important to the ADF framework runtime.  URLs that are void of this token, get new tokens from the ADF runtime.  This can lead to potential memory issues.  <af:forEach var="node" varStatus="vs"    items="#{navigationContext.defaultNavigationModel.listModel['startNode=/,includeStartNode=false']}">                 <af:spacer width="10" height="10" id="s1"/>                 <af:panelGroupLayout id="pgl2" layout="vertical"                                      inlineStyle="border:blue solid 1px">                   <af:goLink id="pt_gl1" text="#{node.title}"                              destination="#{node.goLinkPrettyUrl}"                              targetFrame="#{node.attributes['Target']}"                              inlineStyle="font-size:large;#{node.selected ? 'font-weight:bold;' : ''}"/>                   <af:spacer width="10" height="10" id="s2"/>                   <af:outputText value="#{node.goLinkPrettyUrl}" id="ot2"                                  inlineStyle="font-size:medium; font-weight:bold;"/>                 </af:panelGroupLayout>               </af:forEach>  So now that the links are visible to all, clicking on a secure link will be intercepted by OAM.  Since the OAM can also configure in the Authentication Scheme, the challenging URL (the login page(s)) can also come from anywhere.  In this case the each login page have been defined in the custom portal application.  This was another requirement as well, since this login page also needed to have ADF based content.  This would not be possible if the login page came from OAM.  The following is the example login page: <?xml version='1.0' encoding='UTF-8'?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"           xmlns:f="http://java.sun.com/jsf/core"           xmlns:h="http://java.sun.com/jsf/html"           xmlns:af="http://xmlns.oracle.com/adf/faces/rich">   <jsp:directive.page contentType="text/html;charset=UTF-8"/>   <f:view>     <af:document title="Settings" id="d1">       <af:panelGroupLayout id="pgl1" layout="vertical"/>       <af:outputText value="LOGIN FORM FOR A" id="ot1"/>       <form id="loginform" name="loginform" method="POST"             action="XXXXXXXX:14100/oam/server/auth_cred_submit">         <table>           <tr>             <td align="right">username:</td>             <td align="left">               <input name="username" type="text"/>             </td>           </tr>                      <tr>             <td align="right">password:</td>             <td align="left">               <input name="password" type="password"/>             </td>           </tr>                      <tr>             <td colspan="2" align="center">               <input value=" login " type="submit"/>             </td>           </tr>         </table>         <input name="request_id" type="hidden" value="${param['request_id']}"                id="itsss"/>       </form>     </af:document>   </f:view> </jsp:root> As you can see the code is pretty straight forward.  The most important section is in the form tag, where the submit is a POST to the OAM server.  This example page is mostly HTML, however, it is valid to have adf tags mixed in as well.  As a side note, this solution is really to tailored for a specific requirement.  Normally, there would be only one login page (or dialog/popup), and the OAM challenge resource would be /adfAuthentication.  This maps to the adfAuthentication servlet.  Please see the documentation for more about ADF security here. 

    Read the article

< Previous Page | 574 575 576 577 578 579 580 581 582 583 584 585  | Next Page >