What if you need to embed features from a Jmix, Vaadin, or Spring application into another website or web application?What if you need to embed features from a Jmix, Vaadin, or Spring application into another website or web application? If your target platform isn’t a portal system, the common approach is to use IFrame technology for this purpose.
However, setting up IFrames today may not be entirely straightforward.
When deploying outside your local PC, the application opened in an IFrame will likely require browser cookie support to function properly. Modern security standards dictate that cross-site cookie exchange only works when the following requirements are met:
– Both the target site and the embedded application use a trusted HTTPS setup.
– Session cookies have the Secure property enabled.
– The SameSite property is disabled for these cookies.
This means extra server configuration is required, even for testing or staging environments.
As an example, we’ll use a server with the IP address 10.5.44.78, hosting both a Docker-based Jmix application and a static website that will be served with nginx frontend server configured for HTTPS. This could be run by a virtual server or a local virtual machine running a Linux-based OS.
For production, you can purchase SSL certificates or use free options like Let’s Encrypt/ACME software. For testing purposes, we’ll set up fake domain names and map them to the server’s IP in the /etc/hosts file (located in Windows\System32\drivers\etc on a Windows PC). Add the following line to this file:
“`10.5.44.78 app.jmix site.jmix “`
After that, when you open “`https://app.jmix in browser“`, it will send requests to IP-address we specified above.
For easier access, you can also install a public SSH key (which you may need to generate first) on the remote server using the following command:
“`ssh-copy-id [email protected]“`
## The website
For this simple website, we won’t use any libraries or frameworks. Instead, we’ll write code that opens a browser-native dialog window when a link is clicked, embedding the IFrame contents.
Place the following code inside a “`
This site uses technical and profiling cookies.
You can accept, reject, or customize the cookies by clicking the desired buttons.
By closing this notice, you will continue without accepting.
This site complies with the Data Protection Act (LPD), Swiss Federal Law of September 25, 2020, and the GDPR, EU Regulation 2016/679, regarding the protection of personal data and the free movement of such data.
Privacy Settings
This website uses cookies to improve your experience while you navigate through the website.
View the Cookie Policy View the Personal Data Policy
Font Awesome is a typeface visualisation service provided by Fonticons, Inc. .
Place of processing: United States - Privacy Policy
YouTube is a video content visualisation service provided by Google Ireland Limited. This service allows this Website to incorporate content of this kind on its pages.
This widget is set up in a way that ensures that YouTube will not store information and cookies about Users on this Website unless they play the video.
Place of processing: Ireland - Privacy Policy
Gravatar is an image visualisation service provided by Automattic Inc. that allows this Website to incorporate content of this kind on its pages.
Place of processing: United States - Privacy Policy
Google Fonts is a service used to display font styles operated by Google Ireland Limited and serves to integrate such content into its pages.
Place of processing: Ireland - Privacy Policy