Comments (2)
For the complete discussion around the implementation, please read bug 579074 in Bugzilla before the GitHub migration.
The feature has been implemented with
- commit 51e9303 (Add possibility to set Content Security Policy) and with
- commit 74ad8f5 (Eliminate "new Function()" calls in JS client).
from org.eclipse.rap.
Added the ability to set a Content Security Policy (string with directives) to the RAP application. The implementation is based on the script nonce
attribute, whereby only allowed scripts are executed.
Content-Security-Policy: script-src 'nonce-2726c7f26c'
A dynamically generated nonce value will be added at runtime. Use 'nonce-'
in your script-src
directive. Example of CSP:
script-src 'strict-dynamic' 'nonce-' http: https:; object-src 'none'; base-uri 'none';
For a workbench application, the CSP can be set in a new csp
attribute of the entrypoint
extension in plugin.xml
. In other cases, use the new org.eclipse.rap.rwt.client.WebClient.CSP
property when defining an entrypoint in the ApplicationConfiguration
.
public class MyApplication implements ApplicationConfiguration {
public void configure( Application application ) {
Map properties = new HashMap();
...
properties.put( WebClient.CSP, "script-src 'strict-dynamic' 'nonce-' http: https:; object-src 'none'; base-uri 'none';" );
application.addEntryPoint( "/", MyApp.class, properties );
}
}
Note: Without 'unsafe-eval'
in your CSP script-src
directive, the following RAP features will not work:
- org.eclipse.swt.browser.Browser.execute(String)
- org.eclipse.swt.browser.Browser.evaluate(String)
- org.eclipse.swt.browser.Browser.evaluate(String, BrowserCallback)
- org.eclipse.swt.browser.BrowserFunction
- org.eclipse.rap.rwt.scripting.ClientListener
- org.eclipse.rap.rwt.client.service.JavaScriptExecutor
from org.eclipse.rap.
Related Issues (20)
- [Grid] Index out of bounds exception when using cell selection and setItemCount HOT 2
- org.eclipse.rap.rwt.client.service.ClientInfo.getClientTimezoneOffset() returns invalid value after a daylight saving change
- Infinite loop in RAPDragTracker
- Memory leaks using Display.timerExec with push session active
- RAP version which support jboss8 HOT 17
- BridgeServlet issue
- Replace dependency to org.eclipse.osgi.services HOT 6
- Which RAP version is supporting Java 21?
- Browser controls in tabs lose scroll position in Chromium based browers HOT 2
- ServerPushSession is interrupted after a period of inactivity HOT 4
- `NullPointerException`: Cannot invoke `IProgressMonitor.beginTask(String, int)` because `monitor` is null HOT 6
- Weakness in `FileDialog` may cause `Widget disposed` error HOT 4
- Auto Suggest demo is broken
- Add 'insertText' functionality to the Nebula RichTextEditor HOT 1
- Scrolling continues unexpectedly HOT 5
- Missing RAP artifacts in maven central HOT 6
- fixFocus works differently between SWT and RWT
- Deadlock in JobManager on Startup HOT 2
- pack for column
- Browser Widget: FileNotFoundException under specific conditions / Reduce unnecessary file write actions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from org.eclipse.rap.